/* /Components/Admin/AdminKeyValueList.razor.rz.scp.css */
/* the add form: the field(s) and the capsule on one row, the capsule level with the fields */
.kvl-add[b-x95ej2zhp5] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-5) var(--space-5) var(--space-5);
	min-width: 0;
}

.kvl-add[b-x95ej2zhp5]  .kvl-field {
	flex: 1 1 0;
	min-width: 0;
	margin: 0;
}

.kvl-add[b-x95ej2zhp5]  .kvl-field--key .mud-input-slot {
	font-family: var(--font-mono);
}

/* a value list's box sits under its own label, so the row lines up on the boxes' bottom edge */
.kvl-add--pair[b-x95ej2zhp5] {
	align-items: flex-end;
}

.kvl-add[b-x95ej2zhp5]  .kvl-add-btn {
	flex-shrink: 0;
}

.kvl-rows[b-x95ej2zhp5] {
	list-style: none;
	margin: 0;
	padding: 0;
}

.kvl-row[b-x95ej2zhp5] {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	padding: var(--space-4) var(--space-4) var(--space-4) var(--space-5);
}

.kvl-row:not(:first-child)[b-x95ej2zhp5] {
	border-top: 1px solid var(--border-soft);
}

.kvl-row-text[b-x95ej2zhp5] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	min-width: 0;
}

.config-list-name[b-x95ej2zhp5] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--text);
	overflow-wrap: anywhere;
}

.config-list-sub[b-x95ej2zhp5] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text-dim);
	overflow-wrap: anywhere;
}

/* narrow: a key/value form stacks, the capsule taking the full width under the fields */
@container page (max-width: 48rem) {
	.kvl-add--pair[b-x95ej2zhp5] {
		flex-direction: column;
		align-items: stretch;
	}

	.kvl-add--pair[b-x95ej2zhp5]  .kvl-field {
		flex: 0 0 auto;
	}

	.kvl-add--pair[b-x95ej2zhp5]  .kvl-add-btn {
		justify-content: center;
	}
}
/* /Components/Admin/AdminStat.razor.rz.scp.css */
.adm-stat[b-jueror109g] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	min-width: 0;
	padding: var(--space-5) var(--space-5);
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-card);
}

.adm-stat-icon[b-jueror109g] {
	width: 36px;
	height: 36px;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-row);
	background: rgba(var(--glow), 0.10);
	color: var(--accent);
}

.adm-stat--warn .adm-stat-icon[b-jueror109g] {
	background: var(--warn-tint);
	color: var(--warn);
}

.adm-stat-text[b-jueror109g] {
	min-width: 0;
}

.adm-stat-value[b-jueror109g] {
	font-size: var(--text-xl);
	font-weight: 700;
	line-height: 1.1;
	color: var(--text);
	font-variant-numeric: tabular-nums;
	overflow-wrap: anywhere;
}

.adm-stat-label[b-jueror109g] {
	margin-top: 2px;
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: var(--kicker-tracking);
	text-transform: uppercase;
	color: var(--text-faint);
}

/* A long unbroken value (a build hash, a version with its commit) wraps inside the card
   instead of pushing past its edge. */
.adm-stat-sub[b-jueror109g] {
	font-size: var(--text-sm);
	color: var(--text-dim);
	overflow-wrap: anywhere;
}
/* /Components/Admin/AdminStats.razor.rz.scp.css */
.adm-stats[b-wurt25zpmm] {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(170px, 100%), 1fr));
	gap: var(--space-4);
}
/* /Components/Admin/ComponentUpdates.razor.rz.scp.css */
/* The card's body has no padding of its own: inset like the card's header, so the rows, the controls and a
   theme's button marks (the ink stroke reaches 10px past the button) stay inside the card. */
.adm-updates-body[b-cqh77wxs7x] {
	padding: var(--space-4) var(--space-5) var(--space-5) calc(var(--space-5) + var(--card-head-inset, 0px));
}

.adm-updates-list[b-cqh77wxs7x] {
	list-style: none;
	margin: 0 0 var(--space-4);
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.adm-updates-row[b-cqh77wxs7x] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3) var(--space-4);
}

.adm-updates-name[b-cqh77wxs7x] {
	display: flex;
	flex-direction: column;
	flex: 1 1 12rem;
	min-width: 0;
}

.adm-updates-version[b-cqh77wxs7x] {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	color: var(--text-faint);
	overflow-wrap: anywhere;
}

/* The state and its button stay together, at the row's end even when they wrap under the name. */
.adm-updates-act[b-cqh77wxs7x] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	margin-inline-start: auto;
}

.adm-updates-state[b-cqh77wxs7x] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.adm-updates-state--new[b-cqh77wxs7x] {
	color: var(--accent);
	font-weight: 600;
}

.adm-updates-actions[b-cqh77wxs7x] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-4) var(--space-6);
	margin-bottom: var(--space-4);
}

/* MudSelect puts the class on an inner control; the outer .mud-select is the row's flex item, and it grows by default. */
.adm-updates-actions[b-cqh77wxs7x]  .mud-select:has(> .adm-updates-delay),
.adm-updates-actions[b-cqh77wxs7x]  .mud-select:has(> .adm-updates-tag) {
	flex: 0 1 28rem;
	min-width: min(100%, 10rem);
}

.adm-updates-note[b-cqh77wxs7x] {
	margin: 0;
	font-size: var(--text-xs);
	color: var(--text-faint);
}
/* /Components/Admin/ConfigSidebar.razor.rz.scp.css */
.config-side-back[b-7ebnnkvdih] {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	min-height: 32px;
	padding: 0 var(--space-3);
	margin-bottom: 6px;
	border-radius: var(--radius-row);
	font-size: var(--text-sm);
	color: var(--text-dim);
	text-decoration: none;
}

.config-side-back:hover[b-7ebnnkvdih],
.config-side-back:focus-visible[b-7ebnnkvdih] {
	color: var(--text);
	background: var(--surface-2);
	outline: none;
}

.config-side-tree[b-7ebnnkvdih] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}

.config-side-group[b-7ebnnkvdih] {
	display: block;
}

/* the group row: the same shape as a kit icon row, on a <summary> */
.config-side-summary[b-7ebnnkvdih] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	height: 40px;
	padding: 0 var(--space-3);
	border-radius: var(--radius-row);
	color: var(--text);
	font-size: var(--text-base);
	cursor: pointer;
	list-style: none;
	transition: background var(--motion-fade);
}

.config-side-summary[b-7ebnnkvdih]::-webkit-details-marker {
	display: none;
}

.config-side-summary:hover[b-7ebnnkvdih] {
	background: var(--surface);
}

.config-side-summary:focus-visible[b-7ebnnkvdih] {
	outline: 2px solid var(--accent);
	outline-offset: -2px;
}

.config-side-icon[b-7ebnnkvdih] {
	width: 30px;
	height: 30px;
	flex-shrink: 0;
	border-radius: 8px;
	background: var(--surface-2);
	color: var(--text-dim);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.config-side-group[open] > .config-side-summary .config-side-icon[b-7ebnnkvdih] {
	color: var(--accent);
}

.config-side-label[b-7ebnnkvdih] {
	flex: 1 1 auto;
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.config-side-chevron[b-7ebnnkvdih] {
	color: var(--text-dim);
	display: inline-flex;
	transition: transform var(--motion-spring);
}

.config-side-group[open] > .config-side-summary .config-side-chevron[b-7ebnnkvdih] {
	transform: rotate(90deg);
}

.config-side-sections[b-7ebnnkvdih] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	padding: var(--space-1) 0 var(--space-3) var(--space-6);
}

.config-side-maint[b-7ebnnkvdih] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}
/* /Components/Admin/ImportGuides.razor.rz.scp.css */
.import-guide[b-ovlpdbjn92] {
    padding: var(--space-5) var(--space-5);
    color: var(--text);
    font-size: var(--text-sm);
    line-height: 1.5;
}

.import-guide summary[b-ovlpdbjn92] {
    cursor: pointer;
    font-weight: 700;
}

.import-guide summary:focus-visible[b-ovlpdbjn92] {
    outline: 2px solid var(--accent);
    outline-offset: 4px;
}

.import-guide-body[b-ovlpdbjn92] {
    overflow-wrap: anywhere;
}

.import-guide-body p[b-ovlpdbjn92] {
    margin: 10px 0;
}

.import-guide-body ol[b-ovlpdbjn92],
.import-guide-body ul[b-ovlpdbjn92] {
    padding-left: var(--space-6);
}

.import-guide-body ol > li + li[b-ovlpdbjn92] {
    margin-top: 16px;
}

.import-guide + .import-guide[b-ovlpdbjn92] {
    border-top: 1px solid var(--border-soft);
}

.import-guide-body code[b-ovlpdbjn92] {
    font-family: var(--font-mono);
    font-size: var(--text-sm);
}

.import-guide-body pre[b-ovlpdbjn92] {
    max-width: 100%;
    overflow-x: auto;
    padding: var(--space-4);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-tile);
    background: var(--surface-2);
    color: var(--text);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    white-space: pre;
}
/* /Components/Admin/PackageReadmeDialog.razor.rz.scp.css */
/* The README is HTML the server rendered from Markdown, so every rule that reaches inside it needs
   ::deep. MudBlazor's reset takes every margin off, so without these a blank line between two
   paragraphs, a heading and a list all run together as one block. */
.package-readme[b-e51s23jzl0] {
    max-width: 72ch;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.package-readme[b-e51s23jzl0]  :is(p, ul, ol, pre, table, blockquote, hr) {
    margin: 0 0 1em;
}

.package-readme[b-e51s23jzl0]  :is(h1, h2, h3, h4) {
    margin: 1.5em 0 0.5em;
    font-family: var(--font-display);
    font-weight: 600;
    line-height: 1.3;
    color: var(--text);
}

.package-readme[b-e51s23jzl0]  h1 {
    font-size: var(--text-xl);
}

.package-readme[b-e51s23jzl0]  h2 {
    padding-bottom: 0.25em;
    border-bottom: 1px solid var(--border-soft);
    font-size: var(--text-md);
}

.package-readme[b-e51s23jzl0]  :is(h3, h4) {
    font-size: var(--text-md);
}

.package-readme[b-e51s23jzl0]  > :first-child {
    margin-top: 0;
}

.package-readme[b-e51s23jzl0]  > :last-child {
    margin-bottom: 0;
}

.package-readme[b-e51s23jzl0]  :is(ul, ol) {
    padding-left: 1.5em;
}

.package-readme[b-e51s23jzl0]  ul {
    list-style: disc;
}

.package-readme[b-e51s23jzl0]  ol {
    list-style: decimal;
}

.package-readme[b-e51s23jzl0]  li + li {
    margin-top: 0.25em;
}

.package-readme[b-e51s23jzl0]  li > :is(p, ul, ol) {
    margin: 0.25em 0;
}

.package-readme[b-e51s23jzl0]  a {
    color: var(--accent);
}

.package-readme[b-e51s23jzl0]  code {
    font-family: var(--font-mono);
    font-size: 0.875em;
}

.package-readme[b-e51s23jzl0]  :not(pre) > code {
    padding: 0.1em 0.3em;
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--text) 8%, transparent);
}

.package-readme[b-e51s23jzl0]  pre {
    overflow-x: auto;
    padding: var(--space-4);
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--text) 8%, transparent);
    line-height: 1.45;
}

.package-readme[b-e51s23jzl0]  blockquote {
    padding-left: 1em;
    border-left: 3px solid var(--border);
    color: var(--text-dim);
}

.package-readme[b-e51s23jzl0]  hr {
    border: none;
    border-top: 1px solid var(--border-soft);
}

.package-readme[b-e51s23jzl0]  .wiki-table-scroll {
    max-width: 100%;
    overflow-x: auto;
    margin: 0 0 1em;
}

.package-readme[b-e51s23jzl0]  .wiki-table-scroll:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.package-readme[b-e51s23jzl0]  table {
    margin-bottom: 0;
    border-collapse: collapse;
}

.package-readme[b-e51s23jzl0]  :is(td, th) {
    padding: var(--space-2) var(--space-4);
    border: 1px solid var(--border-soft);
    text-align: left;
}
/* /Components/Admin/RemovableChips.razor.rz.scp.css */
.cfg-chips[b-dwoj7c7869] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	align-items: center;
	min-height: 30px;
}

.cfg-chip[b-dwoj7c7869] {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	height: 26px;
	padding: 0 var(--space-2) 0 var(--space-4);
	border-radius: 13px;
	background: var(--surface-2);
	color: var(--text);
	font-family: var(--font-mono);
	font-size: var(--text-sm);
}

.cfg-chip--changed[b-dwoj7c7869] {
	color: var(--warn);
	background: var(--warn-tint);
}

.cfg-chip-x[b-dwoj7c7869] {
	width: 24px;
	height: 24px;
	border: 0;
	border-radius: 12px;
	background: transparent;
	color: inherit;
	font-size: var(--text-base);
	line-height: 1;
	cursor: pointer;
	opacity: 0.7;
}

.cfg-chip-x:hover[b-dwoj7c7869],
.cfg-chip-x:focus-visible[b-dwoj7c7869] {
	opacity: 1;
	background: var(--border);
}
/* /Components/Builder/BuilderAddPalette.razor.rz.scp.css */
/* The palette opens in a popover, outside the builder page, so it is styled here. */

.bld-add-button[b-v8qgu0cusr] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 32px;
    padding: 0 var(--space-3);
    border: 0;
    border-radius: var(--radius);
    background: none;
    color: var(--accent);
    font: inherit;
    font-size: var(--text-sm);
    cursor: pointer;
}

.bld-add-button:hover[b-v8qgu0cusr] {
    background: var(--surface-2);
}

.bld-palette[b-v8qgu0cusr] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    width: min(320px, calc(100vw - 32px));
    max-height: min(480px, 70vh);
    padding: var(--space-3);
    overflow: auto;
}

.bld-palette-group[b-v8qgu0cusr] {
    margin: 8px 6px 2px;
    color: var(--text-dim);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.bld-palette-item[b-v8qgu0cusr] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-1);
    min-height: 44px;
    padding: var(--space-3) var(--space-3);
    border: 0;
    border-radius: var(--radius);
    background: none;
    color: var(--text);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.bld-palette-item:hover[b-v8qgu0cusr],
.bld-palette-item:focus-visible[b-v8qgu0cusr] {
    background: color-mix(in srgb, var(--accent) 14%, transparent);
}

.bld-palette-name[b-v8qgu0cusr] {
    font-size: var(--text-base);
    font-weight: 600;
}

.bld-palette-help[b-v8qgu0cusr] {
    color: var(--text-dim);
    font-size: var(--text-sm);
}
/* /Components/Builder/BuilderOutline.razor.rz.scp.css */
/* A row's menu opens in a popover, outside the builder page, so it is styled here. */

.bld-menu[b-8w2i2bx93o] {
    display: flex;
    flex-direction: column;
    min-width: 160px;
    padding: var(--space-2);
}

.bld-menu button[b-8w2i2bx93o] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-height: 40px;
    padding: 0 var(--space-4);
    border: 0;
    border-radius: var(--radius);
    background: none;
    color: var(--text);
    font: inherit;
    font-size: var(--text-base);
    text-align: left;
    cursor: pointer;
}

.bld-menu button:hover:not(:disabled)[b-8w2i2bx93o],
.bld-menu button:focus-visible[b-8w2i2bx93o] {
    background: var(--surface-2);
}

.bld-menu button:disabled[b-8w2i2bx93o] {
    opacity: .4;
    cursor: default;
}
/* /Components/Builder/BuilderSkeleton.razor.rz.scp.css */
.bld-skel[b-nhevqy067x] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.bld-skel-row[b-nhevqy067x] {
    height: var(--bld-skel-h, 16px);
    border-radius: 6px;
    background: linear-gradient(90deg,
        color-mix(in srgb, var(--text) 7%, transparent) 0%,
        color-mix(in srgb, var(--text) 13%, transparent) 50%,
        color-mix(in srgb, var(--text) 7%, transparent) 100%);
    background-size: 200% 100%;
    /* On the enter duration, which reduced motion sets to 0s, so the sweep stands still there. */
    animation: bld-skel-sweep-b-nhevqy067x calc(var(--duration-enter) * 5) ease-in-out infinite;
}

@keyframes bld-skel-sweep-b-nhevqy067x {
    from { background-position: 100% 0; }
    to { background-position: -100% 0; }
}
/* /Components/Characters/CharactersSidebar.razor.rz.scp.css */
.char-side-all-online[b-727j386544],
.char-side-create[b-727j386544] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	min-height: 32px;
	padding: 0 var(--space-4);
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--accent);
	text-decoration: none;
	border-radius: var(--radius-row);
}

.char-side-all-online:hover[b-727j386544],
.char-side-all-online:focus-visible[b-727j386544],
.char-side-create:hover[b-727j386544],
.char-side-create:focus-visible[b-727j386544] {
	background: var(--surface-2);
	outline: none;
}
/* /Components/Characters/GalleryViewer.razor.rz.scp.css */
.gallery-details[b-3s7nrf0pas] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	width: min(32rem, 100%);
	margin: 0 auto;
	padding: var(--space-5);
	border: 1px solid var(--border);
	border-radius: var(--radius-card);
	background: var(--surface);
	box-sizing: border-box;
}

.gallery-field[b-3s7nrf0pas] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.gallery-field input[b-3s7nrf0pas],
.gallery-field textarea[b-3s7nrf0pas] {
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--bg);
	color: var(--text);
	font: inherit;
	font-size: var(--text-base);
}

.gallery-field input:focus-visible[b-3s7nrf0pas],
.gallery-field textarea:focus-visible[b-3s7nrf0pas] {
	border-color: var(--accent);
	outline: none;
}

.gallery-field small[b-3s7nrf0pas] {
	color: var(--text-faint);
}

.gallery-form-actions[b-3s7nrf0pas] {
	display: flex;
	justify-content: flex-end;
	gap: var(--space-3);
}

.gallery-details-save[b-3s7nrf0pas],
.gallery-report-send[b-3s7nrf0pas] {
	padding: var(--space-3) var(--space-5);
	border: 0;
	border-radius: 999px;
	background: var(--accent);
	color: var(--accent-on);
	font: inherit;
	font-size: var(--text-sm);
	font-weight: 600;
	cursor: pointer;
}

.gallery-details-save:disabled[b-3s7nrf0pas],
.gallery-report-send:disabled[b-3s7nrf0pas] {
	opacity: 0.5;
	cursor: default;
}

.gallery-share[b-3s7nrf0pas] {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-2);
}

.gallery-share small[b-3s7nrf0pas] {
	color: var(--text-dim);
}

.gallery-details-cancel[b-3s7nrf0pas],
.gallery-report-cancel[b-3s7nrf0pas],
.gallery-share-button[b-3s7nrf0pas] {
	padding: var(--space-3) var(--space-5);
	border: 1px solid var(--border);
	border-radius: 999px;
	background: transparent;
	color: var(--text);
	font: inherit;
	font-size: var(--text-sm);
	font-weight: 600;
	cursor: pointer;
}

.gallery-details-cancel:disabled[b-3s7nrf0pas],
.gallery-report-cancel:disabled[b-3s7nrf0pas],
.gallery-share-button:disabled[b-3s7nrf0pas] {
	opacity: 0.5;
	cursor: default;
}
/* /Components/Characters/NameCard.razor.rz.scp.css */
.name-card[b-jgh569gmho] {
	display: inline;
}

.name-card-panel[b-jgh569gmho] {
	width: min(20rem, calc(100vw - 32px));
	max-height: min(36rem, 80vh);
	overflow-y: auto;
	padding: var(--space-5) var(--space-5);
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	background: var(--card-bg, var(--bg));
	color: var(--text);
	border: 1px solid var(--border);
	border-radius: var(--radius-card, 12px);
	box-shadow: var(--shadow-pop);
}

.name-card-head[b-jgh569gmho] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
}

.name-card-head[b-jgh569gmho]  .name-card-portrait {
	width: 48px;
	height: 48px;
	border-radius: var(--radius-portrait, 12px);
	object-fit: cover;
	flex: none;
}

.name-card-name[b-jgh569gmho] {
	font-family: var(--font-display);
	font-size: var(--text-md);
	font-weight: var(--font-title-weight, 600);
	color: var(--text);
	text-decoration: none;
}

.name-card-name:hover[b-jgh569gmho] {
	text-decoration: underline;
}
/* /Components/CommandPalette.razor.rz.scp.css */
.kit-palette[b-0uxvchr5wj] {
	width: min(560px, calc(100vw - 32px));
	max-height: 70vh;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--border);
	border-radius: var(--radius-card);
	background: var(--surface);
	box-shadow: var(--shadow-pop);
	overflow: hidden;
}

.kit-palette-field[b-0uxvchr5wj] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	height: 52px;
	padding: 0 var(--space-5);
	border-bottom: 1px solid var(--border-soft);
	color: var(--text-faint);
}

.kit-palette-field input[b-0uxvchr5wj] {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	background: transparent;
	color: var(--text);
	font: inherit;
	font-size: var(--text-base);
	outline: none;
}

.kit-palette-kbd[b-0uxvchr5wj] {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	color: var(--text-faint);
	border: 1px solid var(--border);
	border-radius: 4px;
	padding: 0 var(--space-2);
}

.kit-palette-list[b-0uxvchr5wj] {
	list-style: none;
	margin: 0;
	padding: var(--space-3);
	overflow-y: auto;
}

.kit-palette-item[b-0uxvchr5wj] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	min-height: 40px;
	padding: 0 var(--space-4);
	border-radius: var(--radius-row);
	color: var(--text-dim);
	cursor: pointer;
}

.kit-palette-item--active[b-0uxvchr5wj] {
	background: var(--surface-2);
	color: var(--text);
}

.kit-palette-label[b-0uxvchr5wj] {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.kit-palette-hint[b-0uxvchr5wj] {
	flex-shrink: 0;
	font-size: var(--text-sm);
	color: var(--text-faint);
}

.kit-palette-group[b-0uxvchr5wj] {
	padding: var(--space-4) var(--space-4) var(--space-2);
	font-size: var(--text-xs);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--text-faint);
}

.kit-palette-text[b-0uxvchr5wj] {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	padding: var(--space-2) 0;
}

.kit-palette-info[b-0uxvchr5wj] {
	font-size: var(--text-sm);
	color: var(--text-faint);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.kit-palette-pin[b-0uxvchr5wj] {
	flex-shrink: 0;
	display: inline-flex;
	border: 0;
	padding: var(--space-1);
	background: transparent;
	color: var(--text-faint);
	border-radius: 4px;
	cursor: pointer;
	opacity: 0;
}

.kit-palette-item:hover .kit-palette-pin[b-0uxvchr5wj],
.kit-palette-item--active .kit-palette-pin[b-0uxvchr5wj],
.kit-palette-pin--on[b-0uxvchr5wj] {
	opacity: 1;
}

.kit-palette-pin--on[b-0uxvchr5wj] {
	color: var(--accent);
}

.kit-palette-slots[b-0uxvchr5wj] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2);
	min-height: 52px;
	padding: var(--space-3) var(--space-5);
	border-bottom: 1px solid var(--border-soft);
	font-family: var(--font-mono);
	font-size: var(--text-base);
	color: var(--text);
}

.kit-palette-slot[b-0uxvchr5wj] {
	border: 1px solid var(--border);
	border-radius: 4px;
	background: var(--surface-2);
	color: var(--text);
	font: inherit;
	padding: var(--space-1) var(--space-3);
}

.kit-palette-slot:focus-visible[b-0uxvchr5wj] {
	outline: 2px solid var(--accent);
	outline-offset: 1px;
}

.kit-palette-note[b-0uxvchr5wj] {
	padding: var(--space-3) var(--space-5);
	font-size: var(--text-sm);
	color: var(--text-faint);
}

.kit-palette-output[b-0uxvchr5wj] {
	max-height: 30vh;
	overflow-y: auto;
	padding: var(--space-3) var(--space-5);
	border-bottom: 1px solid var(--border-soft);
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text-dim);
	white-space: pre-wrap;
}

.kit-palette-output-title[b-0uxvchr5wj] {
	color: var(--text-faint);
	margin-bottom: 4px;
}

.kit-palette-problems[b-0uxvchr5wj] {
	border-top: 1px solid var(--border-soft);
	max-height: 20vh;
	overflow-y: auto;
}

.kit-palette-problem[b-0uxvchr5wj] {
	font-family: var(--font-mono);
	color: var(--text-dim);
}
/* /Components/FormatMenu.razor.rz.scp.css */
.fm[b-xgc9apqak8] {
	position: relative;
	display: inline-flex;
}

.fm-panel[b-xgc9apqak8] {
	width: 296px;
	max-width: calc(100vw - 32px);
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--space-4);
	color: var(--text);
	font-size: var(--text-sm);
}

.fm-attrs[b-xgc9apqak8] {
	display: flex;
	gap: var(--space-2);
}

.fm-attr[b-xgc9apqak8] {
	width: 36px;
	height: 36px;
	display: grid;
	place-items: center;
	padding: 0;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: var(--text-dim);
	cursor: pointer;
}

.fm-attr:hover[b-xgc9apqak8],
.fm-attr[aria-pressed="true"][b-xgc9apqak8] {
	background: var(--surface-3);
	color: var(--text);
}

.fm-clear[b-xgc9apqak8] {
	margin-left: auto;
}

.fm-section-label[b-xgc9apqak8] {
	margin-bottom: 6px;
	color: var(--text-dim);
	font-size: var(--text-sm);
	font-weight: 600;
}

.fm-swatches[b-xgc9apqak8] {
	display: grid;
	grid-template-columns: repeat(9, 1fr);
	gap: var(--space-2);
}

/* The none swatch leads each row of eight dark colours; the bright ones take the second row from the second cell. */
.fm-swatch:nth-child(10)[b-xgc9apqak8] {
	grid-column-start: 2;
}

.fm-swatch[b-xgc9apqak8] {
	aspect-ratio: 1;
	min-width: 0;
	padding: 0;
	border: 1px solid var(--border);
	border-radius: 7px;
	cursor: pointer;
}

.fm-swatch[aria-pressed="true"][b-xgc9apqak8] {
	outline: 2px solid var(--accent);
	outline-offset: 1px;
}

.fm-swatch--none[b-xgc9apqak8] {
	background: linear-gradient(to top right, transparent calc(50% - 1px), var(--text-faint) 50%, transparent calc(50% + 1px)), var(--surface-1, transparent);
}

.fm-custom[b-xgc9apqak8] {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	gap: var(--space-3);
}

.fm-custom-label[b-xgc9apqak8] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	flex: 1 1 100%;
	color: var(--text-dim);
	font-size: var(--text-sm);
	font-weight: 600;
}

.fm-custom-input[b-xgc9apqak8] {
	height: 32px;
	padding: 0 var(--space-3);
	border: 1px solid var(--border);
	border-radius: 8px;
	background: var(--surface-1, transparent);
	color: var(--text);
	font-family: var(--font-mono);
	font-size: var(--text-sm);
}

.fm-custom-apply[b-xgc9apqak8] {
	flex: 1;
	height: 32px;
	border: 0;
	border-radius: 16px;
	background: var(--surface-3);
	color: var(--text);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.fm-custom-apply:disabled[b-xgc9apqak8] {
	opacity: 0.45;
	cursor: default;
}

.fm-raw[b-xgc9apqak8] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	padding-top: var(--space-3);
	border-top: 1px solid var(--border);
	cursor: pointer;
}

.fm-attr:focus-visible[b-xgc9apqak8],
.fm-swatch:focus-visible[b-xgc9apqak8],
.fm-custom-input:focus-visible[b-xgc9apqak8],
.fm-custom-apply:focus-visible[b-xgc9apqak8] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}
/* /Components/FormattedInput.razor.rz.scp.css */
/* The wrapper is the layer's positioning box; the owner lays it out where its textarea used to go. */
.fi[b-ev5qssw9bu] {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.fi-input[b-ev5qssw9bu] {
	min-width: 0;
}

/* Rich: the textarea's own text is invisible and the layer above shows it styled. The caret and the selection are
   the textarea's and show through the layer, whose background is transparent. */
.fi--rich .fi-input[b-ev5qssw9bu] {
	color: transparent;
	-webkit-text-fill-color: transparent;
	caret-color: var(--text);
}

.fi--rich .fi-input[b-ev5qssw9bu]::placeholder {
	color: var(--text-faint);
	-webkit-text-fill-color: var(--text-faint);
}

.fi--rich .fi-input[b-ev5qssw9bu]::selection {
	background: color-mix(in srgb, var(--accent) 35%, transparent);
}

/* layout.js sets the box (font, padding, borders, size, place) from the textarea's computed style. */
.fi-overlay[b-ev5qssw9bu] {
	position: absolute;
	left: 0;
	top: 0;
	margin: 0;
	overflow: hidden;
	pointer-events: none;
	white-space: pre-wrap;
	overflow-wrap: break-word;
	word-break: normal;
	border-color: transparent;
	background: transparent;
	color: var(--text);
}

/* Unwrapped: the layer keeps each line whole, as the textarea does, and follows its sideways scroll. */
.fi--nowrap .fi-input[b-ev5qssw9bu] {
	white-space: pre;
	overflow-x: auto;
}

.fi--nowrap .fi-overlay[b-ev5qssw9bu] {
	white-space: pre;
	overflow-wrap: normal;
}

/* A style must not change a character's width, or everything after it drifts off the caret: bold is drawn with a
   shadow instead of a heavier face. Blink is marked, not animated, while it is being written. */
.fi-overlay[b-ev5qssw9bu]  .ms-bold {
	font-weight: inherit;
	text-shadow: 0.04em 0 0 currentColor;
}

.fi-overlay[b-ev5qssw9bu]  .ms-blink {
	animation: none;
	text-decoration: underline dotted;
}

.fi-notice[b-ev5qssw9bu] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2) var(--space-4);
	padding: var(--space-2) var(--space-2) 0;
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.fi-notice-action[b-ev5qssw9bu],
.fi-notice-dismiss[b-ev5qssw9bu] {
	padding: var(--space-1) var(--space-3);
	border: 0;
	border-radius: 10px;
	background: transparent;
	font: inherit;
	cursor: pointer;
}

.fi-notice-action[b-ev5qssw9bu] {
	background: var(--surface-3);
	color: var(--text);
	font-weight: 600;
}

.fi-notice-dismiss[b-ev5qssw9bu] {
	color: var(--text-dim);
}

.fi-notice-action:focus-visible[b-ev5qssw9bu],
.fi-notice-dismiss:focus-visible[b-ev5qssw9bu] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}
/* /Components/GameHeroCard.razor.rz.scp.css */
.game-hero[b-0ply3twy65] {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	border-radius: var(--radius-card);
	border: var(--card-border-width) var(--card-border-style) var(--border);
	background: var(--hero-marks), var(--card-bg);
	box-shadow: var(--card-shadow);
}

/* a banner wants room to be seen: about four times as wide as it is tall */
.game-hero--image[b-0ply3twy65] {
	min-height: 220px;
}

.game-hero-img[b-0ply3twy65] {
	position: absolute;
	inset: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: var(--image-filter);
}

/* the dark wash rises from the text at the bottom-left */
.game-hero-scrim[b-0ply3twy65] {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(to top, rgba(var(--scrim-ink), 0.78) 0%, rgba(var(--scrim-ink), 0.5) 45%, rgba(var(--scrim-ink), 0) 80%),
		linear-gradient(to right, rgba(var(--scrim-ink), 0.45) 0%, rgba(var(--scrim-ink), 0) 60%);
	pointer-events: none;
}

.game-hero-body[b-0ply3twy65] {
	flex: 1;
	display: flex;
	align-items: flex-start;
	gap: var(--space-5);
	min-width: 0;
	padding: var(--space-5) var(--space-6);
}

/* level with the name's first line */
.game-hero-logo[b-0ply3twy65] {
	flex: none;
	line-height: 0;
	padding-top: var(--space-1);
}

.game-hero-text[b-0ply3twy65] {
	min-width: 0;
}

/* the side picture (portal_side_art, else the genre's Sharpie), at the far side from the name; the text keeps
   the room it needs */
.game-hero-art[b-0ply3twy65] {
	order: 1;
	flex: none;
	margin-inline-start: auto;
	width: 9rem;
	height: auto;
	align-self: center;
	filter: var(--image-filter);
}

/* the game's own picture keeps its shape, at most Sharpie's height */
.game-hero-art--own[b-0ply3twy65] {
	width: auto;
	max-width: 12rem;
	max-height: 9rem;
	object-fit: contain;
}

.game-hero-name[b-0ply3twy65] {
	margin: 0;
	font-family: var(--font-display);
	font-weight: var(--font-title-weight);
	font-style: var(--title-style);
	letter-spacing: var(--title-tracking);
	text-transform: var(--title-transform);
	font-size: var(--text-2xl);
	line-height: 1.2;
	overflow-wrap: anywhere;
}

.game-hero-tagline[b-0ply3twy65] {
	margin: var(--space-2) 0 0;
	font-size: var(--text-md);
	color: var(--text);
}

.game-hero-description[b-0ply3twy65] {
	margin: var(--space-3) 0 0;
	max-width: 60ch;
	font-size: var(--text-base);
	line-height: 1.5;
	color: var(--text-dim);
}

.game-hero--image .game-hero-text[b-0ply3twy65] {
	color: var(--text-over-image);
	text-shadow: var(--on-image-shadow);
}

.game-hero--image .game-hero-tagline[b-0ply3twy65] {
	color: var(--text-over-image);
}

.game-hero--image .game-hero-description[b-0ply3twy65] {
	color: var(--text-on-image);
}

@container page (max-width: 48rem) {
	.game-hero--image[b-0ply3twy65] {
		min-height: 180px;
	}

	.game-hero-body[b-0ply3twy65] {
		gap: var(--space-4);
		padding: var(--space-5);
	}

	.game-hero-logo[b-0ply3twy65]  svg,
	.game-hero-logo[b-0ply3twy65]  img {
		width: 40px;
		height: 40px;
	}

	.game-hero-name[b-0ply3twy65] {
		font-size: var(--text-xl);
	}

	.game-hero-art[b-0ply3twy65] {
		width: 6rem;
	}

	.game-hero-art--own[b-0ply3twy65] {
		width: auto;
		max-width: 8rem;
		max-height: 6rem;
	}
}
/* /Components/GlobalTerminal.razor.rz.scp.css */
.sharp-terminal-output[b-qocugnonj7] {
    padding: var(--space-4) var(--space-5);
}

/* The jump button floats over the output's bottom edge, above the input line when there is one. */
.sharp-terminal-container[b-qocugnonj7] {
    position: relative;
}

.sharp-terminal-jump[b-qocugnonj7] {
    position: absolute;
    right: 16px;
    bottom: 12px;
    z-index: 2;
    display: none;
    align-items: center;
    gap: var(--space-3);
    height: 32px;
    padding: 0 var(--space-4);
    border: 1px solid var(--border);
    border-radius: 16px;
    background: var(--surface-2);
    color: var(--text);
    font: inherit;
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    font-weight: 600;
    box-shadow: var(--shadow);
    cursor: pointer;
}

.sharp-terminal-container:has(.sharp-terminal-input) .sharp-terminal-jump[b-qocugnonj7] {
    bottom: 64px;
}

/* Scrolled up to reread: the way back. With output arrived meanwhile it says so, in the accent. */
.sharp-terminal--reading .sharp-terminal-jump[b-qocugnonj7] {
    display: inline-flex;
}

.sharp-terminal-jump-new[b-qocugnonj7],
.sharp-terminal--new .sharp-terminal-jump-latest[b-qocugnonj7] {
    display: none;
}

.sharp-terminal--new .sharp-terminal-jump-new[b-qocugnonj7] {
    display: inline;
}

.sharp-terminal--new .sharp-terminal-jump[b-qocugnonj7] {
    border-color: var(--accent);
    background: var(--accent);
    color: var(--accent-on);
}

.sharp-terminal-jump:focus-visible[b-qocugnonj7] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

/* Above the oldest line, while the player keeps a longer log: brings back a page of earlier lines. */
.sharp-terminal-earlier-bar[b-qocugnonj7] {
    display: flex;
    justify-content: center;
    padding: var(--space-3) 0 var(--space-4);
}

.sharp-terminal-earlier-btn[b-qocugnonj7] {
    height: 28px;
    padding: 0 var(--space-4);
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface-2);
    color: var(--text);
    font: inherit;
    cursor: pointer;
}

.sharp-terminal-earlier-btn:disabled[b-qocugnonj7] {
    color: var(--text-dim);
    cursor: default;
}

.sharp-terminal-earlier-btn:focus-visible[b-qocugnonj7] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

/* The prompt the game is waiting on, between the output and the input line: the output's type, on the input
   bar's surface, so it reads as the last line of the output that stays put. */
.sharp-terminal-prompt[b-qocugnonj7] {
    padding: var(--space-3) var(--space-5);
    background: var(--surface);
    border-top: 1px solid var(--border-soft);
    color: var(--text);
    white-space: pre-wrap;
    word-break: break-word;
    line-height: 1.6;
    max-height: 40%;
    overflow: auto;
}

.sharp-terminal-prompt[hidden][b-qocugnonj7] {
    display: none;
}

/* With a prompt showing, the jump button floats above it too. */
.sharp-terminal-container:has(.sharp-terminal-prompt:not([hidden])) .sharp-terminal-jump[b-qocugnonj7] {
    bottom: calc(64px + 2.5rem);
}
/* /Components/Help/HelpEntryPanel.razor.rz.scp.css */
/* The entry body is HTML the server rendered from the helpfile markdown, so every rule that has to
   reach inside it needs ::deep. */
.help-entry[b-4fqmlvjt25] {
    overflow-wrap: anywhere;
}

.help-entry[b-4fqmlvjt25]  h1 {
    margin: 0 0 0.75rem;
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--text);
    overflow-wrap: anywhere;
}

.help-entry[b-4fqmlvjt25]  a {
    color: var(--accent);
}

.help-entry[b-4fqmlvjt25]  code {
    font-family: var(--font-mono);
    font-size: var(--text-sm);
}

.help-entry[b-4fqmlvjt25]  pre {
    overflow-x: auto;
    padding: var(--space-4);
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--text) 8%, transparent);
}

/* A blank line in a helpfile is a blank line in the terminal. The portal's reset takes every margin
   off, so without these each block would run straight into the next. */
.help-entry[b-4fqmlvjt25]  :is(p, ul, ol, pre, table, blockquote) {
    margin: 0 0 1em;
    margin-block-end: 1lh;
}

/* The portal's reset takes a list's indent off, which leaves its markers left of the text. */
.help-entry[b-4fqmlvjt25]  :is(ul, ol) {
    padding-inline-start: 1.5em;
}

.help-entry[b-4fqmlvjt25]  :is(h2, h3) {
    margin: 0 0 0.5em;
}

.help-entry[b-4fqmlvjt25]  :is(p, ul, ol, pre, table, blockquote):last-child {
    margin-block-end: 0;
}

/* Helpfiles are written for a terminal, which prints every space: authors line text up with runs of
   them. The server turns each line break into what the terminal prints (HelpHtmlRenderer), so keeping
   the spaces here adds no line the terminal would not show. A paragraph laid out in columns is marked
   help-aligned, and its columns only line up in a monospaced font. */
.help-entry[b-4fqmlvjt25]  p,
.help-entry[b-4fqmlvjt25]  td,
.help-entry[b-4fqmlvjt25]  th {
    white-space: pre-wrap;
}

/* The indentation of a line that starts after a break, kept as written even in a list item, which
   is not pre-wrap. */
.help-entry[b-4fqmlvjt25]  span.help-indent {
    white-space: pre;
}

.help-entry[b-4fqmlvjt25]  p.help-aligned {
    font-family: var(--font-mono);
    font-size: var(--text-sm);
}

.help-entry[b-4fqmlvjt25]  table {
    display: block;
    overflow-x: auto;
    max-width: 100%;
    border-collapse: collapse;
}

.help-entry[b-4fqmlvjt25]  td,
.help-entry[b-4fqmlvjt25]  th {
    padding: var(--space-2) var(--space-4);
    border: 1px solid var(--border-soft);
}

/* A header-less table is a list of names in columns (the topic index); the terminal prints it bare. */
.help-entry[b-4fqmlvjt25]  table.help-list td {
    padding: var(--space-1) var(--space-6) var(--space-1) 0;
    border: none;
    font-family: var(--font-mono);
    font-size: var(--text-sm);
}

/* An article's table of contents (HelpHtmlRenderer.Contents), under its title: a labelled box whose
   links sit on a rail in line with the text, as the config pages' "In this section" list does. */
.help-entry[b-4fqmlvjt25]  nav.help-toc {
    width: fit-content;
    min-width: min(16rem, 100%);
    max-width: 100%;
    margin: 0 0 1lh;
    padding: var(--space-4) var(--space-5) var(--space-4);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius);
    background: var(--surface-2);
}

.help-entry[b-4fqmlvjt25]  .help-toc-label {
    display: block;
    margin-bottom: 0.375rem;
    font-size: var(--text-sm);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-dim);
}

.help-entry[b-4fqmlvjt25]  nav.help-toc ol {
    margin: 0;
    padding: 0;
    list-style: none;
}

.help-entry[b-4fqmlvjt25]  nav.help-toc li {
    break-inside: avoid;
}

.help-entry[b-4fqmlvjt25]  nav.help-toc a {
    display: block;
    padding: var(--space-2) var(--space-3) var(--space-2) var(--space-4);
    border-left: 2px solid var(--border);
    border-radius: 0 var(--radius) var(--radius) 0;
    font-size: var(--text-base);
    color: var(--text);
    text-decoration: none;
}

.help-entry[b-4fqmlvjt25]  nav.help-toc a:hover {
    border-left-color: var(--accent);
    background: var(--surface-3);
}

.help-entry[b-4fqmlvjt25]  nav.help-toc a:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}

/* A long contents list (seven sections or more) takes the article's width in up to three columns
   rather than a screenful of rows. Each column is at least 14rem, so a narrow page keeps one. */
.help-entry[b-4fqmlvjt25]  nav.help-toc:has(li:nth-child(7)) {
    width: auto;
}

.help-entry[b-4fqmlvjt25]  nav.help-toc ol:has(li:nth-child(7)) {
    columns: 3 14rem;
    column-gap: var(--space-6);
}

/* A ::: seealso block (SeeAlsoBlock, HtmlSeeAlsoRenderer): a labelled nav. A list of bare names wraps
   as one row of links, as the terminal prints it comma-separated; a described list stays a list. */
.help-entry[b-4fqmlvjt25]  nav.help-see-also {
    margin: 1.25rem 0 1rem;
    padding-top: var(--space-4);
    border-top: 1px solid var(--border-soft);
}

.help-entry[b-4fqmlvjt25]  .help-see-also-label {
    display: block;
    margin-bottom: 0.5rem;
    font-size: var(--text-sm);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-dim);
}

.help-entry[b-4fqmlvjt25]  ul.help-see-also-names {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin: 0;
    padding: 0;
    list-style: none;
    font-family: var(--font-mono);
    font-size: var(--text-sm);
}

.help-entry[b-4fqmlvjt25]  ul.help-see-also-names a,
.help-entry[b-4fqmlvjt25]  ul.help-see-also-names code {
    display: inline-block;
    padding: var(--space-1) var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    text-decoration: none;
}

.help-entry[b-4fqmlvjt25]  ul.help-see-also-names a:hover,
.help-entry[b-4fqmlvjt25]  ul.help-see-also-names a:focus-visible {
    border-color: var(--accent);
}

.help-ambiguous[b-4fqmlvjt25] {
    margin: 0 0 0.75rem;
    font-size: var(--text-base);
    color: var(--text-dim);
}

.help-candidates[b-4fqmlvjt25] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
    gap: var(--space-1) var(--space-5);
}

.help-candidates a[b-4fqmlvjt25] {
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    color: var(--accent);
    text-decoration: none;
    overflow-wrap: anywhere;
}

.help-candidates a:hover[b-4fqmlvjt25] {
    text-decoration: underline;
}

/* A ::: center block: centred as the terminal centres it. */
.help-entry[b-4fqmlvjt25]  div.center {
    text-align: center;
}

.help-entry[b-4fqmlvjt25]  div.center table {
    margin-left: auto;
    margin-right: auto;
}
/* /Components/Help/HelpSidebar.razor.rz.scp.css */
/* The symbol topics: short punctuation names, so a wrapped row of chips rather than a full row each. */
.help-side-symbols[b-02gq2twkao] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	padding: 0 var(--space-3) var(--space-3);
}

.help-side-symbol[b-02gq2twkao] {
	min-width: 2.25em;
	padding: var(--space-1) var(--space-3);
	border: 1px solid var(--border);
	border-radius: var(--radius-row);
	background: var(--surface-2);
	color: var(--text);
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	text-align: center;
	text-decoration: none;
	transition: background var(--motion-fade), border-color var(--motion-fade);
}

.help-side-symbol:hover[b-02gq2twkao] {
	background: var(--surface);
	border-color: var(--accent-dim);
}

.help-side-symbol:focus-visible[b-02gq2twkao] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.help-side-symbol[aria-current="page"][b-02gq2twkao] {
	border-color: var(--accent);
	color: var(--accent);
}
/* /Components/Kit/BackLink.razor.rz.scp.css */
.kit-back[b-ott7duzuui] {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	align-self: flex-start;
	margin-bottom: 16px;
	font-size: var(--text-sm);
	color: var(--text-dim);
	text-decoration: none;
}

.kit-back:hover[b-ott7duzuui],
.kit-back:focus-visible[b-ott7duzuui] {
	color: var(--accent);
}

.kit-back[b-ott7duzuui]  .kit-back-icon {
	font-size: var(--text-base);
}
/* /Components/Kit/BottomBar.razor.rz.scp.css */
.kit-bottom-bar[b-nq45antb9d] {
	position: sticky;
	bottom: 0;
	background: var(--surface-2);
	border: 1px solid var(--border);
	border-radius: var(--radius-card);
	padding: var(--space-4) var(--space-4);
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	box-sizing: border-box;
}
/* /Components/Kit/CapsuleButton.razor.rz.scp.css */
.kit-capsule[b-i50i9yz4dz] {
	height: 36px;
	padding: 0 var(--space-5) 0 var(--space-4);
	border: 0;
	border-radius: var(--button-radius, var(--radius-capsule, 18px));
	clip-path: var(--button-clip, none);
	transform: var(--button-transform, none);
	background: var(--button-plain-fill, var(--surface-2));
	box-shadow: inset 0 0 0 1px var(--button-plain-edge, var(--border)), var(--button-plain-shadow, 0 0 transparent);
	color: var(--text);
	font: inherit;
	font-size: var(--text-sm);
	font-weight: var(--button-weight, 600);
	letter-spacing: var(--button-tracking, normal);
	text-transform: var(--button-case, none);
	display: inline-flex;
	align-items: center;
	gap: var(--space-3);
	box-sizing: border-box;
	white-space: nowrap;
	text-decoration: none;
	cursor: pointer;
	transition: filter var(--motion-fade), transform var(--motion-move), box-shadow var(--motion-fade);
}

/* Glass only over a picture (D1 §4.3): a banner, the image viewer, the character sheet's portrait. On a
   plain page the glass is a grey wash under light text, which reads as disabled in a light theme. */
:is(.kit-banner, .kit-banner-strip, .kit-viewer, .sheet-hero) .kit-capsule:not(.kit-capsule--primary)[b-i50i9yz4dz] {
	background: var(--glass-bg);
	backdrop-filter: var(--glass-filter);
	-webkit-backdrop-filter: var(--glass-filter);
	box-shadow: var(--glass-edge);
	color: var(--text-over-image);
}

.kit-capsule:hover[b-i50i9yz4dz] {
	filter: brightness(1.15);
}

.kit-capsule:focus-visible[b-i50i9yz4dz] {
	outline: 2px solid var(--accent);
	outline-offset: var(--button-focus-offset, 2px);
}

.kit-capsule:disabled[b-i50i9yz4dz] {
	opacity: 0.5;
	cursor: default;
}

.kit-capsule--icon[b-i50i9yz4dz] {
	width: 36px;
	padding: 0;
	justify-content: center;
}

.kit-capsule--primary[b-i50i9yz4dz] {
	position: relative;
	isolation: isolate;
	background: var(--button-fill, var(--accent));
	color: var(--button-ink, var(--accent-on));
	font-weight: var(--button-weight, 700);
	box-shadow: var(--button-shadow, var(--capsule-primary-edge, none));
}

/* A stroke drawn behind the words in the text colour (data-buttons="ink"): its shape is the theme's mask, and it
   reaches a little past the button's ends. A theme without one draws nothing here. */
.kit-capsule--primary[b-i50i9yz4dz]::before {
	content: "";
	position: absolute;
	inset: -3px -10px;
	z-index: -1;
	pointer-events: none;
	background: var(--text);
	mask: var(--button-stroke, linear-gradient(transparent, transparent));
}

/* Pressed, in the theme's cut (data-buttons, css/themes/menus.css): a keycap sinks, a skewed plate slides into its
   shadow. A standard theme leaves it as it was. */
.kit-capsule:active:not(:disabled)[b-i50i9yz4dz] {
	transform: var(--button-press, var(--button-transform, none));
}

.kit-capsule--primary:active:not(:disabled)[b-i50i9yz4dz] {
	background: var(--button-press-fill, var(--button-fill, var(--accent)));
	box-shadow: var(--button-press-shadow, var(--button-shadow, none));
}

.kit-capsule--primary:active:not(:disabled)[b-i50i9yz4dz]::before {
	inset: -6px -14px;
	mask: var(--button-press-stroke, var(--button-stroke, linear-gradient(transparent, transparent)));
}
/* /Components/Kit/CardRows.razor.rz.scp.css */
.kit-card-rows[b-ravtyif5r1] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	margin: 0 -4px;
}
/* /Components/Kit/CharacterAvatar.razor.rz.scp.css */
/* What every avatar shares. :where() leaves these weaker than the size and shape the host gives it. */
:where(.char-avatar)[b-hzhsl6re5e] {
	object-fit: cover;
	flex-shrink: 0;
}

:where(.char-avatar--initials)[b-hzhsl6re5e] {
	display: inline-grid;
	place-items: center;
	font-weight: 700;
	line-height: 1;
	overflow: hidden;
}
/* /Components/Kit/EmptyState.razor.rz.scp.css */
.kit-empty[b-g89yhlaatj] {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-7) var(--space-6);
	border-radius: var(--radius-card);
	background: var(--surface-2);
	color: var(--text-dim);
	text-align: center;
}

.kit-empty-icon[b-g89yhlaatj] {
	width: 48px;
	height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(var(--glow), 0.10);
	color: var(--accent);
}

.kit-empty-icon[b-g89yhlaatj]  .mud-icon-root {
	font-size: var(--text-xl);
}

.kit-empty--failed .kit-empty-icon[b-g89yhlaatj] {
	background: var(--warn-tint);
	color: var(--warn);
}

.kit-empty-text[b-g89yhlaatj] {
	max-width: 32rem;
	font-size: var(--text-base);
	line-height: 1.5;
}

.kit-empty-action[b-g89yhlaatj] {
	margin-top: 4px;
}

.kit-empty--compact[b-g89yhlaatj] {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: var(--space-3);
	padding: var(--space-3) var(--space-4);
	background: none;
	text-align: start;
}

.kit-empty--compact .kit-empty-icon[b-g89yhlaatj] {
	width: auto;
	height: 20px; /* one line of the sentence, so the icon sits beside its first line */
	background: none;
	color: var(--text-faint);
}

.kit-empty--compact .kit-empty-icon[b-g89yhlaatj]  .mud-icon-root {
	font-size: var(--text-md);
}

.kit-empty--compact .kit-empty-text[b-g89yhlaatj] {
	flex: 1 1 0;
	min-width: 0;
	font-size: var(--text-sm);
}

.kit-empty--compact .kit-empty-action[b-g89yhlaatj] {
	margin-top: 0;
}
/* /Components/Kit/GalleryImagePicker.razor.rz.scp.css */
/* Inside MudOverlay's fixed layer, which supplies the backdrop and the scroll lock. */
.kit-picker[b-narszueew8] {
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 100vw;
	max-height: 100dvh;
	padding: var(--space-5);
	box-sizing: border-box;
	outline: none;
}

.kit-picker-frame[b-narszueew8] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	width: min(100%, 40rem);
	max-height: calc(100dvh - 32px);
	padding: var(--space-5);
	box-sizing: border-box;
	border: 1px solid var(--border);
	border-radius: var(--radius-card);
	background: var(--surface);
	overflow: auto;
}

.kit-picker-bar[b-narszueew8] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.kit-picker-title[b-narszueew8] {
	font-size: var(--text-md);
	font-weight: 600;
	color: var(--text);
}

.kit-picker-spacer[b-narszueew8] {
	flex: 1 1 auto;
}

/* MudFileUpload's wrapper would otherwise take the frame's width and margin */
.kit-picker-frame[b-narszueew8]  .kit-picker-upload {
	margin: 0;
	width: auto;
	align-self: flex-start;
}

.kit-picker-label[b-narszueew8] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.kit-picker-grid[b-narszueew8] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
	gap: var(--space-3);
}

.kit-picker-item[b-narszueew8] {
	aspect-ratio: 1;
	padding: 0;
	border: 2px solid transparent;
	border-radius: 10px;
	background: var(--surface-2);
	overflow: hidden;
	cursor: pointer;
}

.kit-picker-item img[b-narszueew8] {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.kit-picker-item:hover[b-narszueew8],
.kit-picker-item:focus-visible[b-narszueew8] {
	border-color: var(--border);
}

.kit-picker-item--current[b-narszueew8],
.kit-picker-item--current:hover[b-narszueew8] {
	border-color: var(--accent);
}

.kit-picker-item:disabled[b-narszueew8] {
	cursor: default;
	opacity: 0.6;
}

.kit-picker-item--covered[b-narszueew8] {
	cursor: not-allowed;
	opacity: 0.6;
}

.kit-picker-cover[b-narszueew8] {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: var(--space-2);
	box-sizing: border-box;
	font-size: var(--text-xs);
	color: var(--text-dim);
	text-align: center;
	overflow: hidden;
}
/* /Components/Kit/GlassBanner.razor.rz.scp.css */
.kit-banner[b-zl3p52igbo] {
	position: relative;
	border-radius: var(--radius-card);
	border: 1px solid var(--border);
	overflow: hidden;
	background: var(--surface-2);
	transition: height var(--motion-move);
}

.kit-banner-img[b-zl3p52igbo] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: var(--image-filter);
}

.kit-banner-blur[b-zl3p52igbo] {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.kit-banner-blur--soft[b-zl3p52igbo] {
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
	mask-image: var(--blur-mask-soft);
	-webkit-mask-image: var(--blur-mask-soft);
}

.kit-banner-blur--mid[b-zl3p52igbo] {
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	mask-image: var(--blur-mask-mid);
	-webkit-mask-image: var(--blur-mask-mid);
}

.kit-banner-blur--deep[b-zl3p52igbo] {
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	mask-image: var(--blur-mask-deep);
	-webkit-mask-image: var(--blur-mask-deep);
}

.kit-banner-scrim[b-zl3p52igbo] {
	position: absolute;
	inset: 0;
	background: var(--scrim);
	pointer-events: none;
}

.kit-banner--open .kit-banner-blur--soft[b-zl3p52igbo] {
	mask-image: var(--blur-mask-soft-open);
	-webkit-mask-image: var(--blur-mask-soft-open);
}

.kit-banner--open .kit-banner-blur--mid[b-zl3p52igbo] {
	mask-image: var(--blur-mask-mid-open);
	-webkit-mask-image: var(--blur-mask-mid-open);
}

.kit-banner--open .kit-banner-blur--deep[b-zl3p52igbo] {
	mask-image: var(--blur-mask-deep-open);
	-webkit-mask-image: var(--blur-mask-deep-open);
}

.kit-banner--open .kit-banner-scrim[b-zl3p52igbo] {
	background: var(--scrim-open);
}

.kit-banner--noimage .kit-banner-blur[b-zl3p52igbo],
.kit-banner--noimage .kit-banner-scrim[b-zl3p52igbo] {
	display: none;
}

/* No image and no hue: the text sits on the theme's own surface, which a light theme makes light, so the
   over-image colours (always light, for the dark scrim) and their shadow give way to the theme's text. */
.kit-banner--noimage:not(.kit-banner--hue)[b-zl3p52igbo] {
	--text-over-image: var(--text);
	--text-on-image: var(--text-dim);
	--on-image-shadow: none;
}

.kit-banner-open[b-zl3p52igbo] {
	position: absolute;
	left: 16px;
	right: 16px;
	top: 56px;
	bottom: 64px;
	overflow: auto;
	color: var(--text-over-image);
	font-size: var(--text-base);
	line-height: 1.5;
	text-shadow: var(--on-image-shadow);
}

/* bottom row: the lead (a portrait), the text, and the bottom-right capsules */
.kit-banner-foot[b-zl3p52igbo] {
	position: absolute;
	left: 16px;
	right: 16px;
	bottom: 14px;
	display: flex;
	align-items: flex-end;
	gap: var(--space-5);
	min-width: 0;
}

.kit-banner-lead[b-zl3p52igbo] {
	flex: none;
	line-height: 0;
}

.kit-banner-text[b-zl3p52igbo] {
	flex: 1 1 auto;
	min-width: 0;
	color: var(--text-over-image);
	text-shadow: var(--on-image-shadow);
}

.kit-banner-bottom-actions[b-zl3p52igbo] {
	flex: none;
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

/* no image: a gradient on the subject's hue (the profile's fallback) */
.kit-banner--hue[b-zl3p52igbo] {
	background:
		radial-gradient(ellipse at 30% 50%, rgba(var(--glow), 0.12) 0%, transparent 60%),
		linear-gradient(135deg, hsl(var(--banner-hue) 40% 16%) 0%, hsl(calc(var(--banner-hue) + 40) 30% 10%) 100%);
}

.kit-banner-kicker[b-zl3p52igbo] {
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: var(--kicker-tracking);
	text-transform: uppercase;
	color: var(--text-on-image);
}

.kit-banner-text[b-zl3p52igbo]  .kit-banner-title {
	overflow-wrap: anywhere;
	margin: 0;
	font-family: var(--font-display);
	font-weight: var(--font-title-weight);
	font-style: var(--title-style);
	letter-spacing: var(--title-tracking);
	text-transform: var(--title-transform);
	font-size: var(--text-md);
	line-height: 1.25;
}

.kit-banner-text--hero[b-zl3p52igbo]  .kit-banner-title::before,
.kit-banner-text--hero[b-zl3p52igbo]  .kit-banner-title::after {
	content: var(--ornament-before);
	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 0.6em;
	font-style: normal;
	vertical-align: 0.2em;
	margin-right: 0.45em;
}

.kit-banner-text--hero[b-zl3p52igbo]  .kit-banner-title::after {
	content: var(--ornament-after);
	margin-right: 0;
	margin-left: 0.45em;
}

.kit-banner-text--hero[b-zl3p52igbo]  .kit-banner-title {
	overflow-wrap: anywhere;
	font-size: var(--text-xl);
}

.kit-banner-text--character[b-zl3p52igbo]  .kit-banner-title {
	overflow-wrap: anywhere;
	font-size: var(--text-2xl);
}

.kit-banner-secondary[b-zl3p52igbo] {
	font-size: var(--text-sm);
	color: var(--text-on-image);
	margin-top: 2px;
}

.kit-banner-back[b-zl3p52igbo] {
	position: absolute;
	top: 10px;
	left: 10px;
	display: flex;
	gap: var(--space-3);
}

.kit-banner-actions[b-zl3p52igbo] {
	position: absolute;
	top: 10px;
	right: 10px;
	display: flex;
	gap: var(--space-3);
}

.kit-banner-strip[b-zl3p52igbo] {
	position: relative;
	height: 48px;
	border-radius: var(--radius-lg);
	border: 1px solid var(--border);
	overflow: hidden;
	background: var(--surface-2);
}

.kit-banner-strip-img[b-zl3p52igbo] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: var(--image-filter);
}

.kit-banner-strip-blur[b-zl3p52igbo] {
	position: absolute;
	inset: 0;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	mask-image: linear-gradient(to right, black 0%, black 30%, transparent 60%);
	-webkit-mask-image: linear-gradient(to right, black 0%, black 30%, transparent 60%);
	pointer-events: none;
}

.kit-banner-strip-scrim[b-zl3p52igbo] {
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(var(--scrim-ink), 0.72) 0%, rgba(var(--scrim-ink), 0.45) 35%, rgba(var(--scrim-ink), 0) 65%);
	pointer-events: none;
}

.kit-banner-strip-row[b-zl3p52igbo] {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: 0 var(--space-3) 0 var(--space-5);
	color: var(--text-over-image);
	text-shadow: var(--on-image-shadow);
}

.kit-banner-strip-row[b-zl3p52igbo]  .kit-banner-strip-title {
	margin: 0;
	font-family: inherit;
	font-size: var(--text-base);
	font-weight: 700;
}

.kit-banner-strip-fact[b-zl3p52igbo] {
	font-size: var(--text-sm);
	color: var(--text-on-image);
}

.kit-banner-spacer[b-zl3p52igbo] {
	flex: 1 1 auto;
}

@container page (max-width: 48rem) {
	.kit-banner-foot[b-zl3p52igbo] {
		flex-wrap: wrap;
		gap: var(--space-4);
	}

	.kit-banner-bottom-actions[b-zl3p52igbo] {
		flex-basis: 100%;
	}
}
/* /Components/Kit/IconTile.razor.rz.scp.css */
.kit-icon-tile[b-hu1r523svw] {
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-row);
	background: rgba(var(--glow), 0.10);
	color: var(--accent);
}
/* /Components/Kit/ImageLibraryGrid.razor.rz.scp.css */
.kit-library[b-2g0cwfotg9] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.kit-library-grid[b-2g0cwfotg9] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
	gap: var(--space-3);
}

.kit-library-item[b-2g0cwfotg9] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	padding: 0 0 var(--space-2);
	border: 2px solid transparent;
	border-radius: 10px;
	background: var(--surface-2);
	overflow: hidden;
	cursor: pointer;
	color: var(--text-dim);
}

.kit-library-item img[b-2g0cwfotg9] {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
}

.kit-library-name[b-2g0cwfotg9] {
	padding: 0 var(--space-3);
	font-size: var(--text-xs);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kit-library-name[b-2g0cwfotg9]  .kit-library-lock {
	font-size: var(--text-sm);
	vertical-align: -2px;
	color: var(--text-dim);
}

.kit-library-item:hover[b-2g0cwfotg9],
.kit-library-item:focus-visible[b-2g0cwfotg9] {
	border-color: var(--accent);
}

.kit-library-item:disabled[b-2g0cwfotg9] {
	cursor: default;
	opacity: 0.6;
}

/* A tile's place while the library loads: the square picture and the name line under it. */
.kit-library-skeleton[b-2g0cwfotg9] {
	aspect-ratio: 4 / 5;
	border-radius: 10px;
}
/* /Components/Kit/ImageTile.razor.rz.scp.css */
.kit-tile[b-623un2r4ps] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	width: 100%;
	min-width: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--text);
	font: inherit;
	font-size: var(--text-sm);
	text-align: left;
	text-decoration: none;
	cursor: pointer;
}

.kit-tile:focus-visible[b-623un2r4ps] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
	border-radius: var(--radius-tile);
}

.kit-tile-media[b-623un2r4ps] {
	position: relative;
	display: block;
	width: 100%;
	border-radius: var(--radius-tile);
	overflow: hidden;
	background: var(--surface-2);
}

.kit-tile-img[b-623un2r4ps] {
	display: block;
	width: 100%;
	object-fit: cover;
}

.kit-tile-fallback[b-623un2r4ps] {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--text-dim);
}

.kit-tile-overlay[b-623un2r4ps] {
	position: absolute;
	top: 6px;
	left: 6px;
	right: 6px;
	display: flex;
	gap: var(--space-3);
	pointer-events: none;
}

.kit-tile-row[b-623un2r4ps] {
	display: flex;
	align-items: baseline;
	gap: var(--space-3);
}

.kit-tile-label[b-623un2r4ps] {
	flex: 1 1 auto;
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kit-tile-count[b-623un2r4ps] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.kit-tile-sub[b-623un2r4ps] {
	font-size: var(--text-sm);
	color: var(--text-dim);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kit-tile--text-only[b-623un2r4ps] {
	box-sizing: border-box;
	min-height: 44px;
	justify-content: center;
	padding: var(--space-3) 0;
}

.kit-tile--text-only .kit-tile-label[b-623un2r4ps],
.kit-tile--text-only .kit-tile-sub[b-623un2r4ps] {
	white-space: normal;
	overflow-wrap: anywhere;
}

.kit-tile-overlay--inline[b-623un2r4ps] {
	position: static;
	width: 100%;
	flex-wrap: wrap;
}
/* /Components/Kit/ImageUrlField.razor.rz.scp.css */
/* A picture chosen by address, from the media uploads, or by uploading one. The field and buttons match ConfigFieldRow's; scoped CSS does not reach a child component. */
.cfg-image[b-i81jm0m5sn] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	width: 100%;
}

.cfg-image-row[b-i81jm0m5sn] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
}

.cfg-image-preview[b-i81jm0m5sn] {
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	display: grid;
	place-items: center;
	border-radius: 14px;
	border: 1px solid var(--border);
	background: var(--surface);
}

.cfg-image-preview img[b-i81jm0m5sn] {
	width: 26px;
	height: 26px;
	object-fit: contain;
}

.cfg-text[b-i81jm0m5sn] {
	flex: 1 1 auto;
	width: 100%;
	min-width: 0;
	height: 36px;
	padding: 0 var(--space-4);
	background: var(--surface-3);
	border: 1px solid var(--border);
	border-radius: var(--radius-row);
	color: var(--text);
	font: inherit;
	font-size: var(--text-base);
	box-sizing: border-box;
}

.cfg-text:focus-visible[b-i81jm0m5sn] {
	outline: 2px solid var(--accent);
	outline-offset: 1px;
	border-color: var(--accent);
}

.cfg-text[b-i81jm0m5sn]::placeholder {
	color: var(--text-faint);
}

.cfg-text[readonly][b-i81jm0m5sn] {
	opacity: 0.6;
}

.cfg-icon-btn[b-i81jm0m5sn] {
	width: 36px;
	height: 36px;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-row);
	border: 1px solid var(--border);
	background: transparent;
	color: var(--text-dim);
	cursor: pointer;
}

.cfg-icon-btn:hover[b-i81jm0m5sn],
.cfg-icon-btn:focus-visible[b-i81jm0m5sn],
.cfg-icon-btn[aria-expanded="true"][b-i81jm0m5sn] {
	color: var(--accent);
	border-color: var(--accent);
}

.cfg-image-gallery[b-i81jm0m5sn] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--space-4);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-row);
	background: var(--surface-2);
}

.cfg-image-upload[b-i81jm0m5sn] {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--space-4);
}

.cfg-image-grid[b-i81jm0m5sn] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
	gap: var(--space-3);
	max-height: 320px;
	overflow-y: auto;
}

.cfg-image-tile[b-i81jm0m5sn] {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-3);
	min-width: 0;
	padding: var(--space-3);
	border: 1px solid var(--border);
	border-radius: var(--radius-row);
	background: var(--surface);
	color: var(--text-dim);
	font: inherit;
	font-size: var(--text-xs);
	cursor: pointer;
}

.cfg-image-tile img[b-i81jm0m5sn] {
	width: 64px;
	height: 64px;
	object-fit: contain;
}

.cfg-image-tile span[b-i81jm0m5sn] {
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cfg-image-tile:hover[b-i81jm0m5sn],
.cfg-image-tile:focus-visible[b-i81jm0m5sn],
.cfg-image-tile--on[b-i81jm0m5sn] {
	border-color: var(--accent);
	color: var(--text);
}


.cfg-row-error[b-i81jm0m5sn] {
	font-size: var(--text-sm);
	color: var(--link-missing);
}
/* /Components/Kit/ImageViewer.razor.rz.scp.css */
/* Inside MudOverlay's fixed layer, which supplies the dark backdrop and the scroll lock. */
.kit-viewer[b-c59w3un09r] {
	display: flex;
	align-items: safe center;
	justify-content: center;
	max-width: 100vw;
	max-height: 100dvh;
	padding: var(--space-6);
	box-sizing: border-box;
	outline: none;
}

.kit-viewer-frame[b-c59w3un09r] {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	max-width: min(100%, 72rem);
	max-height: calc(100dvh - 48px);
	min-width: 0;
	overflow-y: auto;
}

.kit-viewer-bar[b-c59w3un09r] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.kit-viewer-count[b-c59w3un09r] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text-on-image);
}

.kit-viewer-spacer[b-c59w3un09r] {
	flex: 1 1 auto;
}

.kit-viewer-actions[b-c59w3un09r] {
	display: flex;
	gap: var(--space-3);
	flex-wrap: wrap;
}

.kit-viewer-stage[b-c59w3un09r] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	min-height: 0;
}

.kit-viewer-img[b-c59w3un09r] {
	display: block;
	max-width: 100%;
	max-height: 70vh;
	min-width: 0;
	border-radius: var(--radius-card);
	object-fit: contain;
	background: var(--surface-2);
}

/* A form under the image (the gallery's edit and report forms) needs the room. */
.kit-viewer--compact .kit-viewer-img[b-c59w3un09r] {
	max-height: 38vh;
}

.kit-viewer-missing[b-c59w3un09r] {
	padding: var(--space-8) var(--space-7);
	border: 1px dashed var(--border);
	border-radius: var(--radius-card);
	color: var(--text-dim);
}

.kit-viewer-caption[b-c59w3un09r] {
	font-size: var(--text-base);
	color: var(--text-over-image);
	text-align: center;
}

.kit-viewer-cover[b-c59w3un09r] {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--space-4);
	min-width: min(24rem, 70vw);
	min-height: 16rem;
	padding: var(--space-7);
	border-radius: var(--radius-card);
	background: var(--glass-pill-bg);
	box-shadow: var(--glass-edge);
	color: var(--text-on-image);
	text-align: center;
	box-sizing: border-box;
}

.kit-viewer-cover-warning[b-c59w3un09r] {
	font-size: var(--text-base);
	color: var(--text-over-image);
}

.kit-viewer-tags[b-c59w3un09r] {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-3);
}

.kit-viewer-tag[b-c59w3un09r] {
	padding: var(--space-1) var(--space-4);
	border: 1px solid color-mix(in srgb, var(--text-on-image) 40%, transparent);
	border-radius: 999px;
	font-size: var(--text-sm);
	color: var(--text-on-image);
}

.kit-viewer-tag--warning[b-c59w3un09r] {
	border-color: var(--warn);
	color: var(--warn);
}
/* /Components/Kit/KitCard.razor.rz.scp.css */
.kit-card[b-b6rbt49zvr] {
	position: relative;
	isolation: isolate;
	background: var(--card-bg);
	backdrop-filter: var(--card-backdrop);
	border: var(--card-border-width) var(--card-border-style) var(--border);
	border-radius: var(--radius-card);
	box-shadow: var(--card-shadow);
	animation: var(--card-enter);
	clip-path: var(--card-clip, none);
	display: flex;
	flex-direction: column;
	min-width: 0;
}

/* The theme's highlight (data-highlight): a still line of light round the card's edge, over its border. Never a loop. */
.kit-card[b-b6rbt49zvr]::after {
	content: "";
	position: absolute;
	inset: calc(-1 * var(--card-border-width));
	z-index: 2;
	border-radius: inherit;
	pointer-events: none;
	border: 1px solid transparent;
	background: var(--card-highlight) border-box;
	mask: linear-gradient(#000 0 0) padding-box exclude, linear-gradient(#000 0 0) border-box;
}

.kit-card-head[b-b6rbt49zvr] {
	min-height: 3.25rem;
	flex-wrap: wrap;
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-4) var(--space-5) var(--space-4) calc(var(--space-5) + var(--card-head-inset, 0px));
	background: var(--card-head-bg, none);
	border-bottom: var(--card-head-rule, 1px solid var(--border-soft));
	border-radius: var(--card-head-radius, 0);
}

.kit-card-titles[b-b6rbt49zvr] {
	flex: 1 1 12rem;
	min-width: 0;
	overflow-wrap: anywhere;
}

.kit-card-title[b-b6rbt49zvr] {
	font-family: var(--font-display);
	font-size: var(--text-base);
	font-weight: var(--font-title-weight);
	font-style: var(--title-style);
	letter-spacing: var(--title-tracking);
	text-transform: var(--title-transform);
	color: var(--card-title-ink, var(--title-color));
	text-shadow: var(--card-title-shadow, var(--title-shadow));
}

/* A frame may set the title on a plate (--card-title-plate*): a fill sized to the words, cut to a shape. */
.kit-card-title[b-b6rbt49zvr] {
	width: fit-content;
	max-width: 100%;
	box-sizing: border-box;
	padding: var(--card-title-plate-pad, 0);
	background: var(--card-title-plate, none);
	box-shadow: var(--card-title-plate-shadow, none);
	clip-path: var(--card-title-plate-clip, none);
}

.kit-card-sub[b-b6rbt49zvr] {
	font-size: var(--text-sm);
	color: var(--card-head-ink, var(--text-dim));
	margin-top: 1px;
}

.kit-card-controls[b-b6rbt49zvr] {
	display: flex;
	flex-wrap: wrap;
	min-width: 0;
	max-width: 100%;
	align-items: center;
	gap: var(--space-3);
}

.kit-card-body[b-b6rbt49zvr] {
	min-width: 0;
}

.kit-card--aside[b-b6rbt49zvr] {
	padding: var(--space-4);
	gap: var(--space-4);
}

/* A frame that heads its cards with a band (--card-head-bleed) runs it out to the aside's edges. */
.kit-card--aside .kit-card-head[b-b6rbt49zvr] {
	min-height: 0;
	margin: calc(-1 * var(--card-head-bleed, 0px)) calc(-1 * var(--card-head-bleed, 0px)) 0;
	padding: calc(var(--card-head-bleed, 0px) / 2) var(--card-head-bleed, 0px) calc(var(--card-head-bleed, 0px) / 2) calc(var(--card-head-bleed, 0px) + var(--card-head-inset, 0px));
	border-bottom: var(--card-head-rule, 0);
}

/* A narrow aside holds wide title tracking to 0.06em, so a short title such as "Recently changed" stays on
   one line. */
.kit-card--aside .kit-card-title[b-b6rbt49zvr] {
	font-size: var(--text-sm);
	letter-spacing: min(var(--title-tracking-length), 0.06em);
}
/* /Components/Kit/LinkCard.razor.rz.scp.css */
.kit-link-card[b-9ayt4h9w5i] {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: center;
	gap: var(--space-4);
	min-width: 0;
	padding: var(--space-5);
	background: var(--card-bg);
	backdrop-filter: var(--card-backdrop);
	border: var(--card-border-width) var(--card-border-style) var(--border);
	border-radius: var(--radius-card);
	box-shadow: var(--card-shadow);
	animation: var(--card-enter);
	color: var(--text);
	text-decoration: none;
	transition: border-color var(--motion-fade);
}

.kit-link-card:hover[b-9ayt4h9w5i] {
	border-color: rgba(var(--glow), 0.4);
}

.kit-link-card:focus-visible[b-9ayt4h9w5i] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.kit-link-card-body[b-9ayt4h9w5i] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	flex: 1 1 auto;
	min-width: 0;
}

.kit-link-card-title[b-9ayt4h9w5i] {
	font-family: var(--font-display);
	font-size: var(--text-base);
	font-weight: var(--font-title-weight);
	font-style: var(--title-style);
	letter-spacing: var(--title-tracking);
	text-transform: var(--title-transform);
	color: var(--title-color);
	text-shadow: var(--title-shadow);
}

.kit-link-card-desc[b-9ayt4h9w5i] {
	font-size: var(--text-sm);
	line-height: 1.45;
	color: var(--text-dim);
}

.kit-link-card[b-9ayt4h9w5i]  .kit-link-card-arrow {
	color: var(--text-faint);
	flex-shrink: 0;
	transition: color var(--motion-fade), transform var(--motion-move);
}

.kit-link-card:hover[b-9ayt4h9w5i]  .kit-link-card-arrow {
	color: var(--accent);
	transform: translateX(2px);
}

@container page (max-width: 48rem) {
	.kit-link-card[b-9ayt4h9w5i] {
		padding: var(--space-4) var(--space-5);
	}
}
/* /Components/Kit/ListEditor.razor.rz.scp.css */
.list-editor[b-d0freku2lm] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	min-width: 0;
}

.list-editor-label[b-d0freku2lm] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

/* the chips and the field share one outlined box, so the list reads as one input */
.list-editor-box[b-d0freku2lm] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3);
	min-height: 40px;
	padding: var(--space-3) var(--space-3) var(--space-3) var(--space-4);
	border: 1px solid var(--border);
	border-radius: var(--radius-row);
	background: var(--surface);
	box-sizing: border-box;
}

.list-editor-box:focus-within[b-d0freku2lm] {
	border-color: var(--accent);
	outline: 1px solid var(--accent);
}

.list-editor-chip[b-d0freku2lm] {
	display: inline-flex;
	align-items: center;
	gap: var(--space-1);
	height: 26px;
	padding: 0 var(--space-1) 0 var(--space-4);
	border-radius: 13px;
	background: var(--surface-2);
	color: var(--text);
	font-size: var(--text-sm);
	max-width: 100%;
	overflow-wrap: anywhere;
}

.list-editor-x[b-d0freku2lm],
.list-editor-add[b-d0freku2lm] {
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	border: 0;
	border-radius: 12px;
	background: transparent;
	color: inherit;
	font-size: var(--text-md);
	line-height: 1;
	cursor: pointer;
	opacity: 0.7;
}

.list-editor-x:hover[b-d0freku2lm],
.list-editor-x:focus-visible[b-d0freku2lm],
.list-editor-add:not(:disabled):hover[b-d0freku2lm],
.list-editor-add:focus-visible[b-d0freku2lm] {
	opacity: 1;
	background: var(--border);
}

.list-editor-add:disabled[b-d0freku2lm] {
	opacity: 0.3;
	cursor: default;
}

.list-editor-input[b-d0freku2lm] {
	flex: 1 1 120px;
	min-width: 80px;
	height: 26px;
	border: 0;
	outline: none;
	background: transparent;
	color: var(--text);
	font: inherit;
	font-size: var(--text-base);
}

.list-editor-chip--mono[b-d0freku2lm],
.list-editor-input.list-editor-input--mono[b-d0freku2lm] {
	font-family: var(--font-mono);
}

.list-editor-input[b-d0freku2lm]::placeholder {
	color: var(--text-faint);
}

.list-editor-help[b-d0freku2lm] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}
/* /Components/Kit/Mention.razor.rz.scp.css */
.mention[b-zn1brshn84] {
	color: inherit;
	font: inherit;
	font-weight: inherit;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	text-decoration: underline 1px color-mix(in srgb, var(--name, var(--text-faint)) var(--mention-alpha), transparent);
	text-underline-offset: var(--mention-offset);
}

.mention:hover[b-zn1brshn84] {
	text-decoration-color: var(--name, var(--text-faint));
}

.mention:focus-visible[b-zn1brshn84] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
	border-radius: 3px;
}
/* /Components/Kit/OocBand.razor.rz.scp.css */
.kit-ooc[b-gxt2udn2pk] {
	display: flex;
	gap: var(--space-4);
	margin: 0 -11px;
	padding: var(--space-4) var(--space-4);
	border-radius: 12px;
	background: var(--ooc-band-bg);
	border: 1px solid var(--ooc-band-border);
}

.kit-ooc-tile[b-gxt2udn2pk] {
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	border-radius: var(--radius-portrait);
	background: var(--ooc-icon-bg);
	color: var(--ooc-icon-fg);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--space-1);
	position: relative;
	overflow: hidden;
}

/* The author's picture fills the tile, and "OOC" sits across its foot. */
.kit-ooc-tile[b-gxt2udn2pk]  .kit-ooc-picture {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.kit-ooc-tile:has(.kit-ooc-picture) .kit-ooc-tag[b-gxt2udn2pk] {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: var(--space-1) 0;
	text-align: center;
	background: rgba(var(--scrim-ink), 0.6);
	color: var(--text-over-image);
}

.kit-ooc-initials[b-gxt2udn2pk] {
	font-size: var(--text-sm);
	font-weight: 700;
}

/* A pose type's label can be longer than "OOC": it keeps to the tile and ends in an ellipsis. */
.kit-ooc-tag[b-gxt2udn2pk] {
	max-width: 100%;
	padding: 0 var(--space-1);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	text-transform: uppercase;
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
}

.kit-ooc-body[b-gxt2udn2pk] {
	min-width: 0;
	flex: 1 1 auto;
}

.kit-ooc-head[b-gxt2udn2pk] {
	display: flex;
	align-items: baseline;
	gap: var(--space-3);
}

.kit-ooc-name[b-gxt2udn2pk] {
	font-weight: 700;
	color: var(--text);
}

.kit-ooc-time[b-gxt2udn2pk] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.kit-ooc-text[b-gxt2udn2pk] {
	font-size: var(--text-base);
	line-height: 1.5;
	color: var(--text);
	margin-top: 2px;
}
/* /Components/Kit/PageHeader.razor.rz.scp.css */
/* The actions sit on the title's baseline while there is room and drop under the title when
   there is not: the text takes an 18rem basis and the head wraps, with no breakpoint. */
.kit-page-head[b-bsq3wp2qu9] {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: var(--space-4) var(--space-5);
}

.kit-page-text[b-bsq3wp2qu9] {
	flex: 1 1 18rem;
	min-width: 0;
	overflow-wrap: anywhere;
}

.kit-page-kicker[b-bsq3wp2qu9] {
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: var(--kicker-tracking);
	text-transform: uppercase;
	color: var(--text-faint);
}

.kit-page-title[b-bsq3wp2qu9] {
	margin: 4px 0 0;
	font-family: var(--font-display);
	font-size: var(--text-xl);
	font-weight: var(--font-title-weight);
	font-style: var(--title-style);
	letter-spacing: var(--title-tracking);
	text-transform: var(--title-transform);
	line-height: 1.2;
	color: var(--title-color);
	text-shadow: var(--title-shadow);
	/* The theme's ornament: a rule under the title, and a glyph either side of it. */
	background: var(--title-underline) left bottom / min(14rem, 100%) var(--title-underline-height) no-repeat;
	padding-bottom: var(--title-underline-pad);
	/* The theme's highlight: a glow that hums, swells or flickers (data-highlight), paused with the atmosphere. */
	animation: var(--title-motion);
	animation-play-state: var(--ambient-play);
}

.kit-page-title[b-bsq3wp2qu9]::before,
.kit-page-title[b-bsq3wp2qu9]::after {
	content: var(--ornament-before);
	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 0.6em;
	font-style: normal;
	vertical-align: 0.2em;
	margin-right: 0.45em;
}

.kit-page-title[b-bsq3wp2qu9]::after {
	content: var(--ornament-after);
	margin-right: 0;
	margin-left: 0.45em;
}

.kit-page-desc[b-bsq3wp2qu9] {
	margin: 4px 0 0;
	font-size: var(--text-sm);
	color: var(--text-dim);
	line-height: 1.6;
	max-width: 70ch;
}

.kit-page-actions[b-bsq3wp2qu9] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3);
	min-width: 0;
}

/* The search takes the room the actions leave and wraps under the title with them. */
.kit-page-search[b-bsq3wp2qu9] {
	flex: 0 1 20rem;
	min-width: min(100%, 12rem);
}
/* /Components/Kit/Pill.razor.rz.scp.css */
.kit-pill[b-t5y7t1k8zi] {
	height: 26px;
	padding: 0 var(--space-4);
	border-radius: 13px;
	background: var(--glass-pill-bg);
	backdrop-filter: var(--glass-filter);
	-webkit-backdrop-filter: var(--glass-filter);
	box-shadow: var(--glass-edge);
	color: var(--text-over-image);
	font-size: var(--text-sm);
	display: inline-flex;
	align-items: center;
	gap: var(--space-3);
	white-space: nowrap;
	box-sizing: border-box;
}

.kit-pill-dot[b-t5y7t1k8zi] {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	flex-shrink: 0;
}

/* tag variant: the mono "draft" / "locked" marker on rows and tiles */
.kit-pill--tag[b-t5y7t1k8zi] {
	height: 18px;
	padding: 0 var(--space-3);
	border-radius: 9px;
	background: var(--surface-2);
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	box-shadow: none;
	color: var(--text-dim);
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	letter-spacing: 0.04em;
}

.kit-pill--warn[b-t5y7t1k8zi] {
	color: var(--warn);
	background: var(--warn-tint);
}
/* /Components/Kit/PopoverMenu.razor.rz.scp.css */
.kit-popmenu[b-8u5jfjhebr] {
    position: relative;
    display: inline-flex;
}
/* /Components/Kit/PortraitTile.razor.rz.scp.css */
.kit-portrait[b-rtug5auu4p] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	min-width: 0;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--text);
	font: inherit;
	font-size: var(--text-sm);
	text-align: left;
	text-decoration: none;
	cursor: pointer;
}

.kit-portrait:focus-visible[b-rtug5auu4p] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
	border-radius: var(--radius-tile);
}

[b-rtug5auu4p] .kit-portrait-img,
[b-rtug5auu4p] .kit-portrait-fallback {
	width: 100%;
	border-radius: var(--radius-tile);
	object-fit: cover;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: var(--text-base);
	font-weight: 700;
	box-sizing: border-box;
}

.kit-portrait--highlight[b-rtug5auu4p]  .kit-portrait-img,
.kit-portrait--highlight[b-rtug5auu4p]  .kit-portrait-fallback {
	outline: 2px solid var(--accent);
	outline-offset: -2px;
}

.kit-portrait-label[b-rtug5auu4p] {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kit-portrait-label--dim[b-rtug5auu4p] {
	color: var(--text-dim);
}

.kit-portrait--highlight .kit-portrait-label[b-rtug5auu4p] {
	color: var(--accent);
}
/* /Components/Kit/RouteSkeleton.razor.rz.scp.css */
/* The section sidebar's head and its links (Kit/SidebarRow), at their sizes. */
.kit-route-skeleton-side[b-r509j7waw7] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	padding: var(--space-5) var(--space-4);
}

.kit-route-skeleton-side-head[b-r509j7waw7] {
	width: 60%;
	height: 22px;
	margin: 0 0 14px 6px;
	border-radius: 6px;
}

.kit-route-skeleton-side-row[b-r509j7waw7] {
	height: 34px;
	border-radius: var(--radius-row);
}

/* The page's own padding, then PageHeader's title and lede above a card. */
.kit-route-skeleton[b-r509j7waw7] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--main-pad);
}

.kit-route-skeleton-title[b-r509j7waw7] {
	width: min(16rem, 60%);
	height: 30px;
	border-radius: 6px;
}

.kit-route-skeleton-sub[b-r509j7waw7] {
	width: min(28rem, 85%);
	height: 14px;
	margin-bottom: 14px;
	border-radius: 4px;
}
/* /Components/Kit/RowMenu.razor.rz.scp.css */
.kit-rowmenu[b-807eb20wim] {
	display: flex;
	flex-direction: column;
	min-width: 12rem;
	padding: var(--space-2);
}
/* /Components/Kit/RowMenuItem.razor.rz.scp.css */
.kit-rowmenu-item[b-z3e8dos4yk] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	min-height: 40px;
	padding: 0 var(--space-4);
	border: 0;
	border-radius: var(--radius);
	background: none;
	color: var(--text);
	font: inherit;
	font-size: var(--text-sm);
	text-align: left;
	cursor: pointer;
}

.kit-rowmenu-item:hover:not(:disabled)[b-z3e8dos4yk],
.kit-rowmenu-item:focus-visible[b-z3e8dos4yk] {
	background: var(--surface-2);
}

.kit-rowmenu-item:disabled[b-z3e8dos4yk] {
	opacity: .4;
	cursor: default;
}

.kit-rowmenu-item--danger[b-z3e8dos4yk] {
	color: var(--danger);
}
/* /Components/Kit/SectionLabel.razor.rz.scp.css */
.kit-section-label[b-9abryqmnrt] {
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: var(--kicker-tracking);
	text-transform: uppercase;
	color: var(--text-faint);
	padding: 0 var(--space-4) var(--space-3);
}
/* /Components/Kit/SectionShell.razor.rz.scp.css */
/* The sidebar itself renders into the shell's slot (MainLayout's .phosphor-pagebar column), which
   owns its width, background, border and scrolling; this file styles what the section puts there. */
.kit-pagebar[b-b8k7zjwy23] {
	position: relative;
	min-height: 100%;
	box-sizing: border-box;
}

/* the collapse button: 36×36, radius 10, top right of the sidebar (the title row leaves room for it) */
.kit-pagebar-toggle[b-b8k7zjwy23] {
	position: absolute;
	top: 14px;
	right: 12px;
	z-index: 1;
	width: 36px;
	height: 36px;
	display: grid;
	place-items: center;
	padding: 0;
	border: 0;
	border-radius: 10px;
	background: var(--surface-2);
	color: var(--text-dim);
	cursor: pointer;
	transition: color var(--motion-fade), background var(--motion-fade);
}

.kit-pagebar-toggle:hover[b-b8k7zjwy23],
.kit-pagebar-toggle:focus-visible[b-b8k7zjwy23] {
	color: var(--text);
	background: var(--border);
	outline: none;
}

.kit-pagebar-toggle:focus-visible[b-b8k7zjwy23] {
	box-shadow: 0 0 0 2px var(--accent);
}

.kit-pagebar[b-b8k7zjwy23]  .kit-side-head {
	padding-right: var(--space-8);
}

/* collapsed: the button leads the strip, the sidebar's leads follow under it */
.kit-pagebar--collapsed[b-b8k7zjwy23] {
	--pagebar-strip: 62px;
	padding-top: var(--pagebar-strip);
}

.kit-pagebar--collapsed .kit-pagebar-toggle[b-b8k7zjwy23] {
	right: auto;
	left: 13px;
}

.kit-section-body[b-b8k7zjwy23] {
	min-width: 0;
	padding: var(--main-pad);
}

.kit-section-body--flush[b-b8k7zjwy23] {
	padding: 0;
}

/* The hand-built config pages (Banned names, Import, Restrictions, Sitelock) put the kit's plain header
   straight into a .config-section-page block; the header carries no margin of its own, so the space under
   it is set here once for all of them. */
.kit-section-body[b-b8k7zjwy23]  .config-section-page > .kit-page-head {
	margin-bottom: 1.25rem;
}

/* a full-height page (the softcode editor) needs a definite height through the section body */
.kit-section-body:has(> .full-height)[b-b8k7zjwy23] {
	height: 100%;
	box-sizing: border-box;
}
/* /Components/Kit/SidebarGroup.razor.rz.scp.css */
.kit-side-group[b-uafxgdjatp] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	margin-bottom: 8px;
}
/* /Components/Kit/SidebarHead.razor.rz.scp.css */
.kit-side-head[b-bszuvile7l] {
	padding: var(--space-2) var(--space-4) var(--space-4);
}

.kit-side-title[b-bszuvile7l] {
	font-family: var(--font-display);
	font-size: var(--text-md);
	font-weight: var(--font-title-weight);
	font-style: var(--title-style);
	letter-spacing: var(--title-tracking);
	text-transform: var(--title-transform);
	color: var(--text);
}

.kit-side-sub[b-bszuvile7l] {
	font-size: var(--text-sm);
	color: var(--text-dim);
	margin-top: 2px;
	display: flex;
	align-items: center;
	gap: var(--space-3);
	flex-wrap: wrap;
}
/* /Components/Kit/SidebarNote.razor.rz.scp.css */
.kit-side-note[b-n6viu1f1a5] {
	padding: var(--space-3) var(--space-4);
	font-size: var(--text-sm);
	line-height: 1.5;
	color: var(--text-dim);
}
/* /Components/Kit/SidebarPanel.razor.rz.scp.css */
.kit-side[b-b7wyas1dvv] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	min-height: 100%;
	padding: var(--space-4) var(--space-3);
	box-sizing: border-box;
}

.kit-side--collapsed[b-b7wyas1dvv] {
	padding: var(--space-4) var(--space-2);
}
/* /Components/Kit/SidebarRow.razor.rz.scp.css */
.kit-row[b-kgjfrjp0d1] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	width: 100%;
	padding: 0 var(--space-3);
	border: 0;
	border-radius: var(--radius-row);
	background: transparent;
	color: var(--text);
	font: inherit;
	font-size: var(--text-base);
	text-align: left;
	text-decoration: none;
	cursor: pointer;
	box-sizing: border-box;
	position: relative;
	transition: background var(--motion-fade);
}

.kit-row:hover[b-kgjfrjp0d1] {
	background: var(--surface);
}

.kit-row:focus-visible[b-kgjfrjp0d1] {
	outline: 2px solid var(--accent);
	outline-offset: -2px;
}

.kit-row--image[b-kgjfrjp0d1] { height: 44px; }
.kit-row--avatar[b-kgjfrjp0d1] { height: 40px; }
.kit-row--icon[b-kgjfrjp0d1] { height: 40px; }

.kit-row--channel[b-kgjfrjp0d1] {
	height: 36px;
	padding: 0 var(--space-4);
	color: var(--text-dim);
}

.kit-row--dim[b-kgjfrjp0d1] { color: var(--text-dim); }

.kit-row--mono .kit-row-label[b-kgjfrjp0d1] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
}

.kit-row--unread[b-kgjfrjp0d1] {
	font-weight: 700;
	color: var(--text);
}

/* The current line: how it is marked is the theme's selection part (data-selection, css/themes/menus.css). Each
   --select-* variable falls back to this row's own raised fill, so a standard theme leaves it as it was. The mark is
   drawn under the row's content, inside its own stacking context. */
.kit-row--current[b-kgjfrjp0d1] {
	isolation: isolate;
	background: var(--select-fill, var(--surface-2));
	color: var(--select-ink, var(--accent));
	font-weight: 600;
	border-radius: var(--select-radius, var(--radius-row));
	box-shadow: var(--select-shadow, none);
	transform: var(--select-lift, none);
	text-shadow: var(--select-text-glow, none);
	animation: var(--select-motion, none);
	animation-play-state: var(--ambient-play, running);
}

.kit-row--current[b-kgjfrjp0d1]::before {
	content: '';
	position: absolute;
	z-index: -1;
	inset: var(--select-mark-inset, 0);
	width: var(--select-mark-width, 0px);
	border-radius: var(--select-mark-radius, 0px);
	background: var(--select-mark, transparent);
	box-shadow: var(--select-mark-glow, none);
	transform: var(--select-mark-transform, none);
	pointer-events: none;
}

.kit-row--collapsed[b-kgjfrjp0d1] {
	justify-content: center;
	padding: 0;
}

.kit-row-lead[b-kgjfrjp0d1] {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.kit-row-lead--group[b-kgjfrjp0d1] {
	width: 36px;
	height: 28px;
	position: relative;
}

.kit-row-img[b-kgjfrjp0d1] {
	width: 30px;
	height: 30px;
	border-radius: 8px;
	object-fit: cover;
}

[b-kgjfrjp0d1] .kit-row-avatar {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	object-fit: cover;
}

.kit-row-lead--group[b-kgjfrjp0d1]  .kit-row-avatar {
	width: 24px;
	height: 24px;
	position: absolute;
	left: 0;
	top: 2px;
}

.kit-row-lead--group[b-kgjfrjp0d1]  .kit-row-avatar--second {
	left: 12px;
	outline: 2px solid var(--surface-3);
}

[b-kgjfrjp0d1] .kit-row-fallback {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--surface-2);
	color: var(--text-dim);
	font-size: var(--text-xs);
	font-weight: 700;
}

.kit-row-icon[b-kgjfrjp0d1] {
	width: 30px;
	height: 30px;
	border-radius: 8px;
	background: var(--surface-2);
	color: var(--text-dim);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.kit-row--current .kit-row-icon[b-kgjfrjp0d1] {
	color: var(--accent);
}

/* Secondary text on the current line, in the selection's dimmer ink where its fill is solid (bar, skew, lift). */
.kit-row--current :is(.kit-row-sub, .kit-row-trail, .kit-row-count)[b-kgjfrjp0d1] {
	color: var(--select-ink-dim, var(--text-dim));
}

.kit-row--current .kit-row-hash[b-kgjfrjp0d1] {
	color: var(--select-ink-dim, var(--text-faint));
}

.kit-row-hash[b-kgjfrjp0d1] {
	width: 14px;
	font-family: var(--font-mono);
	font-size: var(--text-base);
	color: var(--text-faint);
}

.kit-row-label[b-kgjfrjp0d1] {
	flex: 1 1 auto;
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kit-row--two-line[b-kgjfrjp0d1] {
	height: auto;
	min-height: 44px;
	padding-top: var(--space-3);
	padding-bottom: var(--space-3);
}

.kit-row--wrap-label[b-kgjfrjp0d1] {
	height: auto;
	min-height: 44px;
	padding-top: var(--space-3);
	padding-bottom: var(--space-3);
}

.kit-row--wrap-label .kit-row-label[b-kgjfrjp0d1] {
	white-space: normal;
	overflow: visible;
	text-overflow: clip;
	overflow-wrap: anywhere;
}

.kit-row-text[b-kgjfrjp0d1] {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}

.kit-row-text .kit-row-label[b-kgjfrjp0d1] {
	flex: none;
}

.kit-row-sub[b-kgjfrjp0d1] {
	font-size: var(--text-sm);
	color: var(--text-dim);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kit-row-trail[b-kgjfrjp0d1] {
	margin-left: auto;
	flex-shrink: 0;
	font-size: var(--text-sm);
	color: var(--text-dim);
	white-space: nowrap;
}

.kit-row-count[b-kgjfrjp0d1] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.kit-row-unread[b-kgjfrjp0d1] {
	height: 18px;
	min-width: 18px;
	padding: 0 var(--space-3);
	border-radius: 9px;
	background: var(--accent);
	color: var(--accent-on);
	font-size: var(--text-xs);
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}

.kit-row-unread--badge[b-kgjfrjp0d1] {
	position: absolute;
	top: 2px;
	right: 2px;
}

/* the collapsed strip rings the current row's picture in accent (README §3) */
.kit-row--current .kit-row-img[b-kgjfrjp0d1],
.kit-row--current .kit-row-lead--group[b-kgjfrjp0d1]  .kit-row-avatar {
	outline: 2px solid var(--accent);
	outline-offset: 1px;
}

/* the collapsed strip shows a channel as a tile with its first letter, #P (board 07) */
.kit-row--collapsed .kit-row-hash[b-kgjfrjp0d1] {
	width: 38px;
	height: 38px;
	border-radius: 10px;
	background: var(--surface-2);
	display: grid;
	place-items: center;
	font-size: var(--text-sm);
	font-weight: 700;
}

.kit-row--collapsed.kit-row--unread .kit-row-hash[b-kgjfrjp0d1] {
	color: var(--text);
}
/* /Components/Kit/SidebarSearch.razor.rz.scp.css */
.kit-side-search[b-iykwoioi68] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	height: 40px;
	margin: 0 0 10px;
	padding: 0 var(--space-4);
	border: 1px solid var(--border);
	border-radius: var(--radius-row);
	background: var(--surface);
	color: var(--text-faint);
}

.kit-side-search input[b-iykwoioi68] {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	background: transparent;
	color: var(--text);
	font: inherit;
	font-size: var(--text-base);
	outline: none;
}

.kit-side-search:focus-within[b-iykwoioi68] {
	border-color: var(--accent);
}
/* /Components/Kit/SidebarSpacer.razor.rz.scp.css */
.kit-side-spacer[b-djx2b5ei06] {
	flex: 1 1 auto;
	min-height: 16px;
}
/* /Components/Kit/SkeletonCard.razor.rz.scp.css */
/* The card's own surface and edge rather than the placeholder tint; the sheen still crosses it. */
.kit-skeleton-card[b-navb7rpi3m] {
	border-radius: var(--radius-card);
	background: var(--surface);
	border: 1px solid var(--border-soft);
}
/* /Components/Kit/SkeletonLines.razor.rz.scp.css */
/* One line of body text is about 1.5rem tall: a 0.75rem bar and the space around it. */
.kit-skeleton-lines[b-biekoxxcne] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding-block: var(--space-3);
}

.kit-skeleton-heading[b-biekoxxcne] {
	width: 45%;
	height: 1.5rem;
	margin-bottom: 0.5rem;
	border-radius: 6px;
}

.kit-skeleton-line[b-biekoxxcne] {
	height: 0.75rem;
	border-radius: 4px;
}
/* /Components/Kit/SkeletonRows.razor.rz.scp.css */
.kit-skeleton-rows[b-k3kobbynt4] {
	display: flex;
	flex-direction: column;
}

.kit-skeleton-row[b-k3kobbynt4] {
	border-radius: var(--radius-row);
}
/* /Components/Kit/StatusDot.razor.rz.scp.css */
.kit-dot[b-6hkq9sr8s7] {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--accent);
	flex-shrink: 0;
}

.kit-dot--off[b-6hkq9sr8s7] {
	background: var(--text-faint);
}
/* /Components/Kit/TypeChips.razor.rz.scp.css */
/* One quiet track holding the choices, the chosen one tinted with the accent rather than filled with it: the
   mode is a setting beside the field, not the loudest thing on the screen. */
.kit-chips[b-jrqw0mp69q] {
	display: inline-flex;
	gap: var(--space-1);
	flex-wrap: wrap;
	padding: var(--space-1);
	border-radius: 17px;
	background: var(--surface-2);
	box-shadow: inset 0 0 0 1px var(--border-soft);
}

.kit-chip[b-jrqw0mp69q] {
	height: 30px;
	padding: 0 var(--space-4);
	border: 0;
	border-radius: 15px;
	background: transparent;
	color: var(--text-dim);
	font: inherit;
	font-size: var(--text-sm);
	cursor: pointer;
	transition: background var(--motion-fade), color var(--motion-fade);
}

.kit-chip:hover[b-jrqw0mp69q] {
	color: var(--text);
}

.kit-chip:focus-visible[b-jrqw0mp69q] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.kit-chip--on[b-jrqw0mp69q] {
	background: color-mix(in srgb, var(--accent) 16%, transparent);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent);
	color: var(--text);
	font-weight: 600;
}
/* /Components/LanguagePicker.razor.rz.scp.css */
.lang-list[b-gvc27gab4u] {
    display: flex;
    flex-direction: column;
    padding: var(--space-2);
    min-width: 10rem;
}

.lang-item[b-gvc27gab4u] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-3) var(--space-4);
    border: 0;
    border-radius: var(--radius);
    background: none;
    color: var(--text);
    font: inherit;
    font-size: var(--text-base);
    text-align: left;
    cursor: pointer;
}

.lang-item:hover[b-gvc27gab4u],
.lang-item:focus-visible[b-gvc27gab4u] {
    background: var(--surface-3);
}

.lang-item:focus-visible[b-gvc27gab4u] {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}
/* /Components/Layout/ZoneRenderer.razor.rz.scp.css */
/* Widget zone grid (ZoneRenderer grid mode). Component-scoped via CSS isolation — the isolation
   bundle (SharpMUSH.Client.styles.css) is linked from wwwroot/index.html. The 12-column grid gives
   row + column gaps; align-items:stretch makes same-row cells equal height, and home widgets fill
   their cell (height:100% in their own markup) so card borders line up. */

/* Containment on the wrapper, not on .zone-grid: an element is never its own query container. */
.zone-grid-container[b-vrrpuhu38q] {
    container-type: inline-size;
}

.zone-grid[b-vrrpuhu38q] {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: var(--space-5);
    align-items: stretch;
}

.zone-grid-cell[b-vrrpuhu38q] {
    min-width: 0;
    grid-column: span var(--zone-span, 12);
}

@container (max-width: 48rem) {
    .zone-grid[b-vrrpuhu38q] {
        grid-template-columns: 1fr;
    }

    .zone-grid-cell[b-vrrpuhu38q] {
        grid-column: 1 / -1;
    }
}
/* /Components/LoginBrand.razor.rz.scp.css */
.login-brand[b-vi7qbdo52v] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    width: 100%;
    max-width: 380px;
    margin-bottom: 1.25rem;
    text-align: center;
}

/* portal_banner, as a strip as wide as the card under it */
.login-banner[b-vi7qbdo52v] {
    width: 100%;
    height: 96px;
    margin-bottom: var(--space-3);
    object-fit: cover;
    border-radius: var(--radius-lg);
    border: 1px solid var(--border);
    filter: var(--image-filter);
}

.login-brand[b-vi7qbdo52v]  .login-logo {
    width: 44px;
    height: 44px;
    opacity: 0.95;
}

.login-brand-title[b-vi7qbdo52v] {
    margin: 0;
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--text);
    line-height: 1.15;
}

.login-tagline[b-vi7qbdo52v] {
    margin: 0;
    font-size: var(--text-base);
    color: var(--text-dim);
}

/* Unnamed: under OnboardingLayout there is no .phosphor-page, so this queries .onboarding-shell. */
@container (max-height: 700px) {
    .login-brand[b-vi7qbdo52v] {
        margin-bottom: 0.75rem;
    }
    .login-banner[b-vi7qbdo52v] {
        height: 64px;
    }
    .login-brand[b-vi7qbdo52v]  .login-logo {
        width: 34px;
        height: 34px;
    }
}
/* /Components/Map/MapBuilder.razor.rz.scp.css */
.map-builder[b-b8q2xhvju2] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	padding: var(--space-4) var(--space-5);
}

.map-builder-section[b-b8q2xhvju2] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.map-builder-title[b-b8q2xhvju2] {
	margin: 0;
	font: 600 var(--text-base)/1.3 var(--font-ui);
}

.map-builder-subtitle[b-b8q2xhvju2] {
	margin: 8px 0 0;
	font: 600 var(--text-sm)/1.2 var(--font-ui);
	color: var(--text-dim);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.map-builder-fields[b-b8q2xhvju2],
.map-builder-row[b-b8q2xhvju2] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	align-items: center;
}

.map-builder-fields > *[b-b8q2xhvju2] {
	flex: 1 1 6rem;
}

.map-builder-list[b-b8q2xhvju2] {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.map-builder-list li[b-b8q2xhvju2] {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--space-3);
}

.map-builder-dim[b-b8q2xhvju2] {
	color: var(--text-faint);
}

/* What an exit with no way back lacks, on a line of its own under the exit. */
.map-builder-list li:has(.map-builder-wayback)[b-b8q2xhvju2] {
	flex-wrap: wrap;
}

.map-builder-wayback[b-b8q2xhvju2] {
	flex-basis: 100%;
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.map-builder-warning[b-b8q2xhvju2] {
	margin: 0;
	color: var(--warn);
}

.map-builder-footer[b-b8q2xhvju2] {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--space-3);
	padding-top: var(--space-4);
	border-top: 1px solid var(--border-soft);
}

.map-review[b-b8q2xhvju2] {
	margin: 0;
	padding-left: 1.5em;
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.map-review-commands[b-b8q2xhvju2] {
	margin: 4px 0 0;
	padding: var(--space-3) var(--space-4);
	border-radius: var(--radius);
	background: var(--code-bg);
	color: var(--code-text);
	font: var(--text-sm)/1.5 var(--font-mono);
	white-space: pre-wrap;
	overflow-wrap: anywhere;
}

.map-builder-row[b-b8q2xhvju2]  .mud-input-control {
	flex: 1 1 10rem;
}

.map-builder-stack[b-b8q2xhvju2] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	flex: 1;
}

.map-builder-leads[b-b8q2xhvju2] {
	margin-inline-start: 0.5em;
}

.map-builder-section[b-b8q2xhvju2]  .map-settings-library {
	display: grid;
	gap: var(--space-3);
}

.map-builder-section[b-b8q2xhvju2]  .map-settings-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
	gap: var(--space-3);
	max-height: 240px;
	overflow-y: auto;
}

.map-builder-section[b-b8q2xhvju2]  .map-settings-tile {
	display: grid;
	gap: var(--space-2);
	padding: var(--space-2);
	border: 1px solid var(--line);
	border-radius: 8px;
	background: var(--surface);
	color: var(--text);
	font-size: var(--text-xs);
	text-align: start;
	cursor: pointer;
}

.map-builder-section[b-b8q2xhvju2]  .map-settings-tile img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 4px;
}

.map-builder-section[b-b8q2xhvju2]  .map-settings-tile span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.map-builder-section[b-b8q2xhvju2]  .map-settings-swatch {
	display: inline-grid;
	place-items: center;
	min-width: 20px;
	height: 20px;
	border-radius: 4px;
	background: var(--room-tone, var(--surface-2));
	color: var(--text);
}

.map-builder-row--numbers[b-b8q2xhvju2]  .mud-input-control {
	flex: 1 1 4rem;
}
/* /Components/Map/MapCanvas.razor.rz.scp.css */
/* The map is a well sunk into the page, so the rooms on it read as the brightest things there. Its height is fixed:
   zooming changes the drawing inside it, never the page around it. A drawing shorter than the frame sits in its middle. */
.map-frame[b-7tpzrt23ru] {
	display: flex;
	flex-direction: column;
	overflow: auto;
	max-width: 100%;
	height: 70vh;
	min-height: 240px;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--surface-3);
	overscroll-behavior: contain;
	/* One finger scrolls the frame; two are a pinch the map handles, not the page's own zoom. */
	touch-action: pan-x pan-y;
	cursor: grab;
}

.map-frame--dragging[b-7tpzrt23ru],
.map-frame--dragging .map-room[b-7tpzrt23ru] {
	cursor: grabbing;
}

.map-frame[b-7tpzrt23ru]::before,
.map-frame[b-7tpzrt23ru]::after {
	content: "";
	flex: 1 0 0;
}

.map-figure[b-7tpzrt23ru] {
	position: relative;
	flex: none;
	/* Room below the drawing for the labels of the rooms along its bottom edge. */
	margin: 0 auto 28px;
}

/* A graph map with no picture has no grid either: faint dots give the eye a ground to measure by. They
   scale with the drawing, so they stay put under the rooms. */
.map-frame--blank .map-figure[b-7tpzrt23ru] {
	background-image: radial-gradient(circle, color-mix(in srgb, var(--text) 14%, transparent) 1px, transparent 1.5px);
	background-size: var(--map-dots) var(--map-dots);
}

/* Every line keeps its width as the map zooms; the drawing scales, its strokes do not. */
.map-svg :is(line, rect, circle, path)[b-7tpzrt23ru] {
	vector-effect: non-scaling-stroke;
}

.map-svg[b-7tpzrt23ru] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.map-grid[b-7tpzrt23ru] {
	stroke: var(--border-soft);
	stroke-width: 1;
}

.map-edge[b-7tpzrt23ru] {
	stroke: var(--text-dim);
	stroke-width: 2;
	stroke-linecap: round;
}

.map-arrow[b-7tpzrt23ru] {
	fill: var(--text-dim);
}

/* A stored place: its terrain's tone washed over the cell, edge to edge, so a painted area reads as one ground. */
.map-place[b-7tpzrt23ru] {
	fill: var(--surface-2);
	stroke: var(--border-soft);
	stroke-width: 1;
}

.map-place--toned[b-7tpzrt23ru] {
	fill: color-mix(in srgb, var(--room-tone) 30%, var(--surface));
	stroke: color-mix(in srgb, var(--room-tone) 45%, var(--surface));
}

.map-place--selected[b-7tpzrt23ru] {
	stroke: var(--text);
	stroke-width: 2.5;
}

/* A place that cannot be entered is hatched, so it reads as closed without its colour. */
.map-hatch[b-7tpzrt23ru] {
	stroke: color-mix(in srgb, var(--text) 35%, transparent);
	stroke-width: 2;
}

.map-place-hatch[b-7tpzrt23ru] {
	pointer-events: none;
}

.map-place-glyph[b-7tpzrt23ru],
.map-place-badge[b-7tpzrt23ru] {
	fill: var(--text);
	font-size: var(--text-2xl);
	text-anchor: middle;
	dominant-baseline: central;
}

.map-place-badge[b-7tpzrt23ru] {
	font-size: var(--text-md);
	text-anchor: end;
	dominant-baseline: hanging;
}

.map-wall[b-7tpzrt23ru] {
	stroke: var(--text);
	stroke-width: 4;
	stroke-linecap: round;
}

/* A locked way: passable for some, so broken rather than solid. */
.map-wall--lock[b-7tpzrt23ru] {
	stroke: var(--accent);
	stroke-dasharray: 8 6;
}

/* A graph map's way between two places. */
.map-way[b-7tpzrt23ru] {
	stroke: var(--text-dim);
	stroke-width: 3;
	stroke-linecap: round;
}

.map-way--wall[b-7tpzrt23ru] {
	stroke: var(--text);
	stroke-width: 4;
	stroke-dasharray: 2 8;
}

.map-way--lock[b-7tpzrt23ru] {
	stroke: var(--accent);
	stroke-dasharray: 8 6;
}

.map-way-name[b-7tpzrt23ru] {
	fill: var(--text-dim);
	font-size: var(--text-base);
	dominant-baseline: central;
	paint-order: stroke;
	stroke: var(--surface);
	stroke-width: 4px;
}

.map-oneway[b-7tpzrt23ru] {
	stroke: var(--text-dim);
	stroke-width: 2;
}

.map-box[b-7tpzrt23ru] {
	fill: var(--surface-2);
	stroke: var(--text-faint);
	stroke-width: 1.5;
}

/* A room of a kind the legend colours: a wash of the tone inside, the tone itself on the edge. */
.map-box--toned[b-7tpzrt23ru] {
	fill: color-mix(in srgb, var(--room-tone) 22%, var(--surface));
	stroke: var(--room-tone);
}

.map-box--unplaced[b-7tpzrt23ru] {
	stroke-dasharray: 6 4;
}

.map-box--region[b-7tpzrt23ru] {
	fill: var(--surface-2);
	stroke-dasharray: 10 5;
}

.map-box--here[b-7tpzrt23ru] {
	fill: color-mix(in srgb, var(--accent) 14%, var(--surface-2));
	stroke: var(--accent);
	stroke-width: 2.5;
}

.map-box--selected[b-7tpzrt23ru] {
	stroke: var(--text);
	stroke-width: 2.5;
}

.map-vertical path[b-7tpzrt23ru] {
	fill: var(--text-dim);
}

.map-door[b-7tpzrt23ru] {
	fill: var(--accent);
}

.map-rooms[b-7tpzrt23ru] {
	position: absolute;
	inset: 0;
}

.map-room[b-7tpzrt23ru] {
	position: absolute;
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	align-items: center;
	justify-content: center;
	padding: var(--space-2) var(--space-3);
	border: 0;
	border-radius: 8px;
	background: transparent;
	color: var(--text);
	/* The name grows and shrinks with the drawing, within what still reads. */
	font: clamp(var(--text-xs), calc(var(--text-sm) * var(--map-zoom)), var(--text-lg))/1.2 var(--font-ui);
	text-align: center;
	overflow: hidden;
	cursor: pointer;
	transition: background-color var(--motion-fade);
}

.map-room:hover[b-7tpzrt23ru] {
	background: color-mix(in srgb, var(--text) 6%, transparent);
}

/* Too small to hold its name: the name goes on a label below, as a pin's does, and the icon keeps the middle. Smaller
   still, the room keeps both for its tooltip and its screen reader. */
.map-room--tiny .map-room-name[b-7tpzrt23ru],
.map-room--tiny .map-room-icon[b-7tpzrt23ru] {
	display: none;
}

.map-room--region[b-7tpzrt23ru] {
	text-decoration: none;
	font-weight: 600;
}

.map-room:focus-visible[b-7tpzrt23ru] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

/* The kind's icon above the name, as large as the drawing allows, in the kind's tone darkened toward the text so it
   stands off the tinted room. */
.map-room-icon[b-7tpzrt23ru] {
	flex: none;
	width: clamp(18px, calc(30px * var(--map-zoom)), 48px);
	height: clamp(18px, calc(30px * var(--map-zoom)), 48px);
	max-width: 70%;
	max-height: 60%;
	color: color-mix(in srgb, var(--room-tone, var(--text-dim)) 70%, var(--text));
	fill: currentColor;
	font-weight: 600;
	line-height: 1;
}

span.map-room-icon[b-7tpzrt23ru] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: clamp(var(--text-md), calc(var(--text-xl) * var(--map-zoom)), var(--text-2xl));
}

.map-place-icon[b-7tpzrt23ru] {
	fill: color-mix(in srgb, var(--room-tone, var(--text-dim)) 75%, var(--surface));
	pointer-events: none;
}

/* Who is here: a count in the room's corner, so the name keeps the middle. */
.map-room-count[b-7tpzrt23ru] {
	position: absolute;
	right: 6px;
	bottom: 4px;
	display: inline-flex;
	align-items: center;
	color: var(--accent);
	font: 600 var(--text-sm)/1 var(--font-ui);
}

.map-room-name[b-7tpzrt23ru] {
	font-weight: 600;
}

.map-room-name[b-7tpzrt23ru] {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	overflow-wrap: break-word;
}

.map-edge--route[b-7tpzrt23ru] {
	stroke: var(--hue-orange);
	stroke-width: 4;
}

.map-box--route[b-7tpzrt23ru] {
	stroke: var(--hue-orange);
	stroke-width: 2.5;
}

.map-box--pin[b-7tpzrt23ru] {
	fill: var(--surface);
	stroke: var(--text);
	stroke-width: 3;
}

/* A pin's name sits under its point, on a label of its own so it reads over any picture. */
.map-room--pin[b-7tpzrt23ru],
.map-room--small[b-7tpzrt23ru] {
	overflow: visible;
	align-items: flex-start;
	padding: 0;
}

.map-room--small .map-room-name[b-7tpzrt23ru] {
	margin-top: 4px;
}

.map-room--pin .map-room-name[b-7tpzrt23ru],
.map-room--small .map-room-name[b-7tpzrt23ru] {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	max-width: 160px;
	width: max-content;
	padding: var(--space-1) var(--space-3);
	border-radius: 8px;
	background: var(--surface);
	box-shadow: var(--shadow);
	font-weight: 600;
	-webkit-line-clamp: 2;
}

/* A pin keeps its kind's colours; a route, here or selected still draws over them. */
.map-box--pin.map-box--toned[b-7tpzrt23ru] {
	fill: color-mix(in srgb, var(--room-tone) 22%, var(--surface));
	stroke: var(--room-tone);
}

.map-box--pin.map-box--route[b-7tpzrt23ru] {
	stroke: var(--hue-orange);
}

.map-box--pin.map-box--here[b-7tpzrt23ru] {
	stroke: var(--accent);
	stroke-width: 4;
}

.map-box--pin.map-box--selected[b-7tpzrt23ru] {
	fill: var(--text);
}

.map-cell[b-7tpzrt23ru] {
	position: absolute;
	/* Faint until pointed at, so a builder sees where a room may go without the grid drowning the rooms. */
	border: 1px dashed color-mix(in srgb, var(--border) 60%, transparent);
	border-radius: 8px;
	background: transparent;
	cursor: pointer;
}

.map-cell:hover[b-7tpzrt23ru],
.map-cell:focus-visible[b-7tpzrt23ru] {
	border-color: var(--accent);
	background: var(--surface-2);
	outline: none;
}

.map-cell--selected[b-7tpzrt23ru] {
	border: 2px solid var(--accent);
}

.map-spot[b-7tpzrt23ru] {
	fill: none;
	stroke: var(--accent);
	stroke-width: 2;
	stroke-dasharray: 6 4;
}

.map-pick[b-7tpzrt23ru] {
	position: absolute;
	inset: 0;
	cursor: crosshair;
}

.map-room--locked[b-7tpzrt23ru] {
	color: var(--text-faint);
	cursor: default;
}

/* Stored places have an explicit cell-sized box. Keep labels within its usable interior;
   small fitted hexagons have room for only one line, while zoomed cells retain two. */
.map-room--place[b-7tpzrt23ru] {
	container: map-place / size;
}

.map-room--place .map-room-name[b-7tpzrt23ru] {
	min-width: 0;
	max-width: 100%;
	overflow-wrap: anywhere;
	hyphens: auto;
	-webkit-line-clamp: 2;
}

@container map-place (height < 30px) {
	.map-room--place .map-room-icon[b-7tpzrt23ru] {
		display: none;
	}

	.map-room-name[b-7tpzrt23ru] {
		flex-shrink: 0;
		display: block;
		white-space: nowrap;
		text-overflow: ellipsis;
	}
}

/* Editing a picture: the picture is the board. What lies past its edge is shaded, and the edge is drawn. */
.map-outside[b-7tpzrt23ru] {
	fill: color-mix(in srgb, var(--surface-3) 70%, transparent);
	pointer-events: none;
}

.map-edge-line[b-7tpzrt23ru] {
	fill: none;
	stroke: var(--text-dim);
	stroke-width: 1.5;
	stroke-dasharray: 6 5;
	pointer-events: none;
}

/* A room stored past the picture's edge, drawn on it: a builder sees it needs moving. */
.map-box--outside[b-7tpzrt23ru] {
	stroke: var(--hue-orange);
	stroke-width: 2.5;
	stroke-dasharray: 4 3;
}

/* A room a builder may move: a pointer drags it, so a finger does too rather than scrolling the map. */
.map-room--movable[b-7tpzrt23ru] {
	cursor: move;
	touch-action: none;
}

/* While a room is dragged, where it was stays as a dashed outline and the room follows the pointer as a ghost. */
.map-box--origin[b-7tpzrt23ru] {
	fill: transparent;
	stroke: var(--text-faint);
	stroke-dasharray: 5 4;
}

.map-room--dragging[b-7tpzrt23ru] {
	z-index: 2;
	border: 2px solid var(--accent);
	background: color-mix(in srgb, var(--accent) 12%, transparent);
	box-shadow: var(--shadow);
	cursor: grabbing;
}

.map-frame--editing-drag .map-handle[b-7tpzrt23ru] {
	visibility: hidden;
}

.map-frame--editing-drag[b-7tpzrt23ru],
.map-frame--editing-drag .map-room[b-7tpzrt23ru] {
	cursor: grabbing;
}

/* The chosen room's corners: drawn 10px, with 24px around each to grab (WCAG 2.5.8). */
.map-handle[b-7tpzrt23ru] {
	position: absolute;
	z-index: 1;
	width: 24px;
	height: 24px;
	transform: translate(-50%, -50%);
	touch-action: none;
}

.map-handle[b-7tpzrt23ru]::after {
	content: "";
	position: absolute;
	inset: 7px;
	border: 2px solid var(--accent);
	border-radius: 2px;
	background: var(--surface);
}

.map-handle:hover[b-7tpzrt23ru]::after {
	background: var(--accent);
}

.map-handle--nw[b-7tpzrt23ru],
.map-handle--se[b-7tpzrt23ru] {
	cursor: nwse-resize;
}

.map-handle--ne[b-7tpzrt23ru],
.map-handle--sw[b-7tpzrt23ru] {
	cursor: nesw-resize;
}

/* Where a dragged room will land, or the size it is being given, under it. */
[b-7tpzrt23ru] .map-drag-readout {
	position: absolute;
	z-index: 3;
	transform: translateX(-50%);
	padding: var(--space-1) var(--space-4);
	border: 1px solid var(--border);
	border-radius: 999px;
	background: var(--surface-2);
	color: var(--text);
	font: var(--text-sm)/1.5 var(--font-ui);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	pointer-events: none;
}

.map-box--outside.map-box--selected[b-7tpzrt23ru] {
	stroke-width: 3.5;
}
/* /Components/ObjectBrowser.razor.rz.scp.css */
.ob-modes[b-3gnim3jhv4] { display: flex; gap: var(--space-2); padding: var(--space-3) var(--space-3) var(--space-3); }
.ob-mode[b-3gnim3jhv4] {
    flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); padding: var(--space-3) var(--space-2);
    border-radius: var(--radius); cursor: pointer; border: 1px solid var(--border); background: transparent;
    color: var(--text-dim); font-family: var(--font-ui); font-size: var(--text-xs); font-weight: 500; transition: color var(--motion-fade), border-color var(--motion-fade), background var(--motion-fade);
}
.ob-mode:hover:not(:disabled)[b-3gnim3jhv4] { color: var(--text); border-color: rgba(var(--glow), 0.3); }
.ob-mode--on[b-3gnim3jhv4] { background: rgba(var(--glow), 0.12); border-color: rgba(var(--glow), 0.4); color: var(--accent); font-weight: 600; }
.ob-mode:disabled[b-3gnim3jhv4] { opacity: 0.5; cursor: default; }

.ob-searchwrap[b-3gnim3jhv4] { display: flex; flex-direction: column; gap: var(--space-2); padding: 0 var(--space-3) var(--space-3); }
.ob-search[b-3gnim3jhv4] { display: flex; align-items: center; gap: var(--space-3); padding: 0 var(--space-4); background: var(--surface-3);
    border: 1px solid var(--border); border-radius: var(--radius); }
.ob-search:focus-within[b-3gnim3jhv4] { border-color: var(--accent); }
.ob-search-input[b-3gnim3jhv4] { flex: 1; min-width: 0; padding: var(--space-3) 0; background: transparent; border: none; outline: none;
    color: var(--text); font-family: var(--font-mono); font-size: var(--text-sm); }
.ob-search-input[b-3gnim3jhv4]::placeholder { color: var(--text-faint); }
.ob-go[b-3gnim3jhv4] { flex-shrink: 0; padding: var(--space-2) var(--space-4); border-radius: 6px; border: 1px solid rgba(var(--glow), 0.3);
    background: rgba(var(--glow), 0.10); color: var(--accent); cursor: pointer; font-family: var(--font-ui);
    font-size: var(--text-xs); font-weight: 600; }
.ob-go:hover:not(:disabled)[b-3gnim3jhv4] { background: rgba(var(--glow), 0.18); }
.ob-hint[b-3gnim3jhv4] { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--text-faint); line-height: 1.4; }
.ob-hint code[b-3gnim3jhv4] { background: var(--surface-2); border-radius: 3px; padding: 0 var(--space-2); }

.ob-error[b-3gnim3jhv4] { margin: 0 0.5rem 0.375rem; padding: var(--space-3) var(--space-4); border-radius: var(--radius); font-size: var(--text-xs);
    color: var(--warn); background: var(--warn-tint); border: 1px solid color-mix(in srgb, var(--warn) 30%, transparent); }

.ob-group-label[b-3gnim3jhv4] { font-family: var(--font-kicker); font-size: var(--text-xs); letter-spacing: var(--kicker-tracking); text-transform: uppercase;
    color: var(--text-faint); padding: var(--space-3) var(--space-3) var(--space-2); }
.ob-item[b-3gnim3jhv4] { width: 100%; text-align: left; display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-3);
    border-radius: var(--radius); cursor: pointer; border: none; background: transparent; margin-bottom: 0.125rem; transition: background var(--motion-fade); }
.ob-item:hover[b-3gnim3jhv4] { background: var(--surface-2); }
.ob-item--on[b-3gnim3jhv4] { background: rgba(var(--glow), 0.10); box-shadow: inset 2px 0 0 var(--accent); }
.ob-item-name[b-3gnim3jhv4] { flex: 1; min-width: 0; font-family: var(--font-ui); font-size: var(--text-sm); color: var(--text-dim);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ob-item--on .ob-item-name[b-3gnim3jhv4] { color: var(--text); font-weight: 600; }
.ob-item-ref[b-3gnim3jhv4] { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--text-faint); flex-shrink: 0; }
/* /Components/Onboarding/ChecklistProgress.razor.rz.scp.css */
.checklist-progress p[b-j38civeapq] { margin: 0 0 .4rem; font-weight: 650; }
.checklist-progress progress[b-j38civeapq] { appearance: none; display: block; width: 100%; height: .5rem; border: 0; border-radius: 999px; background: var(--border); overflow: hidden; }
.checklist-progress progress[b-j38civeapq]::-webkit-progress-bar { background: var(--border); }
.checklist-progress progress[b-j38civeapq]::-webkit-progress-value { background: var(--accent); border-radius: 999px; }
.checklist-progress progress[b-j38civeapq]::-moz-progress-bar { background: var(--accent); border-radius: 999px; }
/* /Components/Onboarding/GameGuideLinks.razor.rz.scp.css */
.journey-about[b-ednc6h65td] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-4);
    margin: 0;
}

.journey-about a[b-ednc6h65td] {
    color: var(--accent);
    text-decoration: underline;
    text-underline-offset: .2em;
}
/* /Components/Onboarding/GameIdentityForm.razor.rz.scp.css */
.identity-form[b-ohos15p54z] { max-width: 48rem; color: var(--text); }
.identity-form fieldset[b-ohos15p54z] { padding: 0; border: 0; min-width: 0; }
.identity-form[b-ohos15p54z]  .identity-field { margin-top: var(--space-5); }
.identity-form p[b-ohos15p54z] { line-height: 1.65; margin: .75rem 0; }
.identity-form .identity-advisory[b-ohos15p54z] { font-size: var(--text-sm); padding-inline-start: var(--space-3); border-inline-start: 2px solid var(--accent); }
.identity-columns[b-ohos15p54z] { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5); align-items: start; }
.identity-save[b-ohos15p54z] { margin-top: 1rem; min-height: 44px; padding: var(--space-4) var(--space-5); color: var(--accent-on); background: var(--accent); border: 0; border-radius: var(--radius); font-weight: 600; cursor: pointer; }
.identity-form a[b-ohos15p54z] { color: var(--accent); text-decoration: underline; text-underline-offset: .2em; }
.identity-form :focus-visible[b-ohos15p54z] { outline: 2px solid var(--accent); outline-offset: 3px; }
@container page (max-width: 48rem) { .identity-columns[b-ohos15p54z] { grid-template-columns: 1fr; gap: 0; } }

.identity-preview[b-ohos15p54z] { margin-top: 1.5rem; padding: var(--space-5); border: 1px solid var(--border); border-radius: 8px; background: var(--surface); }
.identity-preview-label[b-ohos15p54z] { font-size: var(--text-sm); color: var(--text-faint); }
.identity-preview-content[b-ohos15p54z] { display: flex; align-items: center; gap: var(--space-5); }
.identity-preview-content > div[b-ohos15p54z] { min-width: 0; flex: 1; }
.identity-preview-content h2[b-ohos15p54z] { font-size: var(--text-xl); overflow-wrap: anywhere; }
.identity-preview-content img[b-ohos15p54z] { width: min(25%, 7rem); height: auto; object-fit: contain; }
.identity-preview-intro[b-ohos15p54z] { white-space: pre-line; overflow-wrap: anywhere; }

.identity-starters[b-ohos15p54z] { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.identity-starters button[b-ohos15p54z] { min-height: 44px; max-width: 100%; padding: var(--space-3) var(--space-4); overflow-wrap: anywhere; color: var(--text); background: var(--surface); border: 1px solid var(--border); border-radius: 5px; cursor: pointer; }
.identity-starters button:hover[b-ohos15p54z] { border-color: var(--accent); }

/* An empty field shows a sample value, greyed, so its shape is clear before anything is typed. */
.identity-form[b-ohos15p54z]  input::placeholder,
.identity-form[b-ohos15p54z]  textarea::placeholder {
	color: var(--text-faint);
	opacity: 1;
}
/* /Components/Onboarding/GuideCompanion.razor.rz.scp.css */
.guide-companion[b-cjdcpyyqkk] { flex: 0 0 auto; min-width: 0; color: var(--text); }
.guide-recovery h2[b-cjdcpyyqkk] { padding: var(--space-4) var(--space-4); font-size: var(--text-md); }
.guide-companion-content[b-cjdcpyyqkk] { padding: 0; }
.guide-companion[b-cjdcpyyqkk]  .guide-panel { border: 0; border-radius: 0; padding: 0; background: transparent; }
.guide-companion-content > p[b-cjdcpyyqkk] { padding: var(--space-3); }
.guide-companion :focus-visible[b-cjdcpyyqkk] { outline: 2px solid var(--accent); outline-offset: 2px; }

.guide-start[b-cjdcpyyqkk] { color: var(--text); }
.guide-start h2[b-cjdcpyyqkk] { font-size: var(--text-lg); margin-block: 1rem; }
.guide-start button[b-cjdcpyyqkk] { display: block; width: 100%; min-height: 44px; text-align: left; padding: var(--space-4); margin-block: .6rem; background: var(--surface); color: var(--text); border: 1px solid var(--border); border-radius: 6px; cursor: pointer; }
.guide-start :focus-visible[b-cjdcpyyqkk] { outline: 2px solid var(--accent); outline-offset: 2px; }
/* /Components/Onboarding/GuideContext.razor.rz.scp.css */
.guide-context[b-7nquivwt1q] { margin-block: 1rem; padding: var(--space-2) var(--space-5); border-left: 3px solid var(--accent); }
.guide-context p[b-7nquivwt1q] { line-height: 1.6; margin-block: .6rem; }
.guide-context a[b-7nquivwt1q] { color: var(--accent); text-decoration: underline; text-underline-offset: .2em; }
.guide-context a:focus-visible[b-7nquivwt1q] { outline: 2px solid var(--accent); outline-offset: 3px; }
/* /Components/Onboarding/GuidePackageCommands.razor.rz.scp.css */
.guide-packages[b-f2v6kv3xjw] { margin-top: 1rem; }
.guide-packages button[b-f2v6kv3xjw] { min-height: 44px; padding: var(--space-3) var(--space-4); background: var(--surface); color: var(--text); border: 1px solid var(--border); border-radius: 6px; cursor: pointer; }
.guide-packages button:disabled[b-f2v6kv3xjw] { opacity: .65; cursor: progress; }
.guide-packages p[b-f2v6kv3xjw], .guide-packages li[b-f2v6kv3xjw] { line-height: 1.6; margin-block: .6rem; }
.guide-packages ul[b-f2v6kv3xjw] { padding-left: var(--space-6); }
.guide-packages a[b-f2v6kv3xjw] { display: block; color: var(--accent); text-decoration: underline; }
.guide-packages :focus-visible[b-f2v6kv3xjw] { outline: 2px solid var(--accent); outline-offset: 3px; }
/* /Components/Onboarding/GuidePanel.razor.rz.scp.css */
.guide-panel[b-shnimxzws6] { padding: clamp(var(--space-5), 3vw, var(--space-7)); background: var(--surface); color: var(--text); border: 1px solid var(--border); border-radius: 12px; min-width: 0; }
.guide-panel a:not([class])[b-shnimxzws6] { color: var(--accent); text-decoration: underline; text-underline-offset: .2em; }
.guide-panel-heading[b-shnimxzws6], .guide-panel-actions[b-shnimxzws6] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); }
.guide-panel-heading[b-shnimxzws6] { justify-content: space-between; color: var(--text-faint); }
.guide-lesson[b-shnimxzws6] { margin: 1.25rem 0; max-width: 68ch; }
.guide-lesson h2[b-shnimxzws6] { font-size: clamp(var(--text-lg), 3vw, var(--text-2xl)); line-height: 1.25; margin-bottom: .8rem; }
.guide-lesson p[b-shnimxzws6] { line-height: 1.7; margin: .75rem 0; }
.guide-panel button[b-shnimxzws6], .guide-action[b-shnimxzws6] { min-height: 44px; padding: var(--space-3) var(--space-4); border: 1px solid var(--border); border-radius: 6px; color: var(--text); background: var(--surface); cursor: pointer; display: inline-flex; align-items: center; text-decoration: none; }
.guide-panel button:disabled[b-shnimxzws6] { opacity: .5; cursor: default; }
.guide-panel .guide-action[b-shnimxzws6] { font-weight: 650; border-color: var(--accent); }
.guide-panel .guide-action--quiet[b-shnimxzws6] { font-weight: inherit; border-color: var(--border); }
.guide-panel :focus-visible[b-shnimxzws6] { outline: 2px solid var(--accent); outline-offset: 3px; }
.guide-reference[b-shnimxzws6] { margin-top: 1.5rem; border-top: 1px solid var(--border); padding-top: var(--space-5); }
.guide-reference summary[b-shnimxzws6] { cursor: pointer; min-height: 36px; }
.guide-reference dt[b-shnimxzws6] { margin-top: .8rem; }
.guide-reference dd[b-shnimxzws6] { margin: .2rem 0 .8rem; line-height: 1.6; }
.guide-panel[b-shnimxzws6]  .guide-practice { padding: var(--space-5); margin-block: 1rem; border-left: 3px solid var(--accent); }
.guide-panel[b-shnimxzws6]  .guide-practice div { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.guide-panel[b-shnimxzws6]  .guide-practice input { max-width: 100%; min-width: 0; border: 1px solid var(--border); color: var(--text); background: var(--surface); border-radius: 4px; padding: var(--space-3); }
.guide-panel[b-shnimxzws6]  .guide-practice button { color: var(--text); background: var(--surface); border: 1px solid var(--border); border-radius: 4px; padding: var(--space-3); min-height: 44px; }
.guide-hint[b-shnimxzws6] { font-size: var(--text-base); color: var(--text-faint); }

.guide-host[b-shnimxzws6] { display: inline-flex; align-items: center; gap: var(--space-4); }
.guide-mascot[b-shnimxzws6] { width: 88px; height: 88px; object-fit: contain; flex: none; }
.guide-mascot-themed[b-shnimxzws6] { width: 128px; height: 128px; }
.guide-mascot-reduced[b-shnimxzws6] { width: 40px; height: 40px; }
@container page (max-width: 48rem) { .guide-mascot:not(.guide-mascot-reduced)[b-shnimxzws6] { width: 64px; height: 64px; } }
@container page (max-width: 48rem) { .guide-mascot-themed:not(.guide-mascot-reduced)[b-shnimxzws6] { width: 96px; height: 96px; } }

.guide-panel .guide-stop[b-shnimxzws6] { width: 44px; height: 44px; padding: var(--space-3); justify-content: center; }
.guide-panel-actions button[b-shnimxzws6], .guide-lesson .guide-action[b-shnimxzws6] { gap: var(--space-3); }
.guide-panel-actions .guide-action[b-shnimxzws6] { margin-left: auto; }
.guide-step-count[b-shnimxzws6] { font-size: var(--text-base); font-weight: 600; }

.guide-channel-commands[b-shnimxzws6] { margin: 1rem 0; padding: 0; display: grid; gap: var(--space-5); }
.guide-channel-commands > div[b-shnimxzws6] { min-width: 0; }
.guide-channel-commands dt[b-shnimxzws6] { margin: 0 0 .25rem; }
.guide-channel-commands dd[b-shnimxzws6] { margin: 0; line-height: 1.5; }
.guide-channel-commands code[b-shnimxzws6] { white-space: normal; overflow-wrap: anywhere; font-size: var(--text-base); }
.guide-channels > p[b-shnimxzws6] { font-size: var(--text-base); line-height: 1.5; }
/* /Components/Onboarding/GuideTooltip.razor.rz.scp.css */
.guide-tooltip[b-9ox5rdknz9] { position: relative; display: inline-flex; }
.guide-tooltip-label[b-9ox5rdknz9] {
    position: absolute;
    top: 100%;
    inset-inline-start: 0;
    z-index: 5;
    width: max-content;
    max-width: min(13rem, 65vw);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--surface);
    color: var(--text);
    font-size: var(--text-base);
    line-height: 1.4;
    white-space: normal;
    box-shadow: var(--shadow-pop);
}
.guide-tooltip-end .guide-tooltip-label[b-9ox5rdknz9] { inset-inline-start: auto; inset-inline-end: 0; }
/* /Components/Onboarding/HomeHeaderFields.razor.rz.scp.css */
.home-header[b-hy3hw2qkol] {
	margin-top: var(--space-6);
	padding-top: var(--space-5);
	border-top: 1px solid var(--border);
}

.home-header h3[b-hy3hw2qkol] {
	margin: 0;
	font-size: var(--text-lg);
}

.home-header p[b-hy3hw2qkol] {
	line-height: 1.65;
	margin: .75rem 0;
}

.home-header a[b-hy3hw2qkol] {
	color: var(--accent);
	text-decoration: underline;
	text-underline-offset: .2em;
}

.home-header-fields[b-hy3hw2qkol] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.home-header-preview[b-hy3hw2qkol] {
	margin-top: var(--space-5);
}

.home-header-preview-label[b-hy3hw2qkol] {
	font-size: var(--text-sm);
	color: var(--text-faint);
}
/* /Components/Play/ChannelBrowser.razor.rz.scp.css */
.chan-browse[b-f8lvay3dm3] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	padding: var(--space-1) 0 var(--space-3);
}

.chan-browse-row[b-f8lvay3dm3] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	padding: var(--space-3) var(--space-4);
	border-radius: 8px;
}

.chan-browse-row:hover[b-f8lvay3dm3] {
	background: var(--surface-2);
}

.chan-browse-text[b-f8lvay3dm3] {
	display: flex;
	flex-direction: column;
	min-width: 0;
	flex: 1;
}

.chan-browse-name[b-f8lvay3dm3] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text-dim);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.chan-browse-row--on .chan-browse-name[b-f8lvay3dm3] {
	color: var(--text);
	font-weight: 600;
}

.chan-browse-desc[b-f8lvay3dm3],
.chan-browse-count[b-f8lvay3dm3] {
	font-size: var(--text-sm);
	color: var(--text-faint);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.chan-browse-gag[b-f8lvay3dm3] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	padding: 0;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: var(--text-dim);
	cursor: pointer;
}

.chan-browse-gag[aria-pressed="true"][b-f8lvay3dm3] {
	color: var(--accent);
}

.chan-browse-gag:hover:not(:disabled)[b-f8lvay3dm3] {
	background: var(--surface-3);
}

.chan-browse-switch[b-f8lvay3dm3] {
	position: relative;
	flex: none;
	width: 40px;
	height: 22px;
	padding: 0;
	border: 0;
	border-radius: 11px;
	background: var(--border);
	cursor: pointer;
	transition: background var(--motion-fade);
}

/* a bigger invisible hit box around the small pill */
.chan-browse-switch[b-f8lvay3dm3]::after {
	content: "";
	position: absolute;
	inset: -10px -4px;
}

.chan-browse-switch[aria-checked="true"][b-f8lvay3dm3] {
	background: var(--accent);
}

.chan-browse-thumb[b-f8lvay3dm3] {
	position: absolute;
	top: 3px;
	left: 3px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--switch-knob-off);
	transition: left var(--motion-spring), background var(--motion-fade);
}

.chan-browse-switch[aria-checked="true"] .chan-browse-thumb[b-f8lvay3dm3] {
	left: 21px;
	background: var(--accent-on);
}

.chan-browse-switch:disabled[b-f8lvay3dm3],
.chan-browse-gag:disabled[b-f8lvay3dm3] {
	opacity: 0.5;
	cursor: default;
}

.chan-browse-switch:focus-visible[b-f8lvay3dm3],
.chan-browse-gag:focus-visible[b-f8lvay3dm3] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}
/* /Components/Play/CharacterSheet.razor.rz.scp.css */
/* MudOverlay owns the fixed, full-screen layer; the sheet sits at its right edge (§4.12). */
.sheet[b-ahurzbqt1d] {
	position: relative;
	height: 100%;
	width: min(405px, 100vw);
	background: var(--surface);
	border-left: 1px solid var(--border);
	box-shadow: var(--shadow);
	overflow-y: auto;
	outline: none;
	text-align: left;
	cursor: default;
}

.sheet-hero[b-ahurzbqt1d] {
	position: relative;
	height: 272px;
}

[b-ahurzbqt1d] .sheet-portrait {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 25%;
	display: block;
}

[b-ahurzbqt1d] .sheet-portrait--initials {
	display: grid;
	place-items: center;
	font-size: var(--text-3xl);
	font-weight: 700;
}

.sheet-hero-scrim[b-ahurzbqt1d] {
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, transparent 45%, var(--surface) 100%);
}

.sheet-hero-bar[b-ahurzbqt1d] {
	position: absolute;
	top: 12px;
	left: 12px;
	right: 12px;
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.sheet-spacer[b-ahurzbqt1d] {
	flex: 1;
}

.sheet-hero-text[b-ahurzbqt1d] {
	position: absolute;
	left: 20px;
	right: 20px;
	bottom: 12px;
}

.sheet-name[b-ahurzbqt1d] {
	margin: 0;
	font-size: var(--text-xl);
	font-weight: 700;
	color: var(--text);
	text-shadow: var(--on-image-shadow);
}

.sheet-role[b-ahurzbqt1d] {
	font-size: var(--text-sm);
	color: var(--text);
	text-shadow: var(--on-image-shadow);
}

.sheet-body[b-ahurzbqt1d] {
	padding: var(--space-4) var(--space-6) var(--space-6);
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

.sheet-pills[b-ahurzbqt1d] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
}

.sheet-actions[b-ahurzbqt1d] {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--space-3);
}

.sheet-action[b-ahurzbqt1d] {
	height: 40px;
	display: grid;
	place-items: center;
	border-radius: 20px;
	border: 1px solid var(--border);
	background: transparent;
	color: var(--text);
	font: inherit;
	font-size: var(--text-base);
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}

.sheet-action--primary[b-ahurzbqt1d] {
	background: var(--accent);
	color: var(--accent-on);
	border-color: transparent;
}

.sheet-action:focus-visible[b-ahurzbqt1d],
.sheet-gallery-item:focus-visible[b-ahurzbqt1d],
.sheet-gallery-all:focus-visible[b-ahurzbqt1d] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.sheet-gallery-head[b-ahurzbqt1d] {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
}

.sheet-gallery-all[b-ahurzbqt1d] {
	font-size: var(--text-sm);
	color: var(--accent);
	text-decoration: none;
}

.sheet-gallery[b-ahurzbqt1d] {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-3);
}

.sheet-gallery-item[b-ahurzbqt1d] {
	padding: 0;
	border: 2px solid transparent;
	border-radius: var(--radius-tile);
	background: var(--surface-2);
	height: 72px;
	overflow: hidden;
	cursor: pointer;
}

.sheet-gallery-item--icon[b-ahurzbqt1d] {
	border-color: var(--accent);
}

.sheet-gallery-item img[b-ahurzbqt1d] {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.sheet-gallery-cover[b-ahurzbqt1d] {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	width: 100%;
	height: 100%;
	padding: var(--space-2);
	box-sizing: border-box;
	font-size: var(--text-xs);
	color: var(--text-dim);
	text-align: center;
	overflow: hidden;
}
/* /Components/Play/CommView.razor.rz.scp.css */
.comm[b-kkn1slcbo9] {
	container: comm / inline-size;
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 0;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 16px;
	overflow: hidden;
}

.comm-head[b-kkn1slcbo9] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-4) var(--space-4) var(--space-4) var(--space-5);
	border-bottom: 1px solid var(--border);
	flex-shrink: 0;
}

.comm-titles[b-kkn1slcbo9] {
	flex: 1;
	min-width: 0;
}

.comm-title[b-kkn1slcbo9] {
	margin: 0;
	font-size: var(--text-base);
	font-weight: 700;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.comm-sub[b-kkn1slcbo9] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.comm-close[b-kkn1slcbo9] {
	height: 36px;
	display: flex;
	align-items: center;
	gap: var(--space-3);
	padding: 0 var(--space-4);
	border: 1px solid var(--border-soft);
	border-radius: 10px;
	background: transparent;
	color: var(--text-dim);
	font: inherit;
	font-size: var(--text-sm);
	white-space: nowrap;
	cursor: pointer;
}

.comm-close-key[b-kkn1slcbo9] {
	padding: var(--space-1) var(--space-2);
	border: 1px solid var(--border);
	border-radius: 5px;
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	color: var(--text-faint);
}

/* A narrow view (a phone's) keeps the arrow alone. */
@container comm (max-width: 32rem) {
	.comm-close[b-kkn1slcbo9] {
		width: 36px;
		padding: 0;
		justify-content: center;
	}

	.comm-close-key[b-kkn1slcbo9] {
		display: none;
	}
}

.comm-close:hover[b-kkn1slcbo9] {
	background: var(--surface-2);
	color: var(--text);
}

.comm-members-toggle[b-kkn1slcbo9] {
	height: 36px;
	display: flex;
	align-items: center;
	gap: var(--space-3);
	padding: 0 var(--space-4);
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: var(--text-dim);
	font: inherit;
	font-size: var(--text-sm);
	cursor: pointer;
}

.comm-members-toggle:hover[b-kkn1slcbo9] {
	background: var(--surface-2);
	color: var(--text);
}

.comm-close:focus-visible[b-kkn1slcbo9],
.comm-members-toggle:focus-visible[b-kkn1slcbo9],
.comm-send:focus-visible[b-kkn1slcbo9] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.comm-main[b-kkn1slcbo9] {
	position: relative;
	flex: 1;
	min-height: 0;
	display: flex;
}

/* column-reverse keeps the newest line in view as lines arrive */
.comm-scroll[b-kkn1slcbo9] {
	flex: 1;
	min-width: 0;
	min-height: 0;
	overflow-y: auto;
	display: flex;
	flex-direction: column-reverse;
	padding: var(--space-3) var(--space-6);
}

.comm-lines[b-kkn1slcbo9] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.comm-unlogged[b-kkn1slcbo9] {
	color: var(--text-faint);
	font-size: 0.85em;
	margin-bottom: 0.5rem;
}

.comm-day[b-kkn1slcbo9],
.comm-new[b-kkn1slcbo9] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.comm-day[b-kkn1slcbo9]::before,
.comm-day[b-kkn1slcbo9]::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--border);
}

.comm-new[b-kkn1slcbo9] {
	color: var(--unread-alert);
	font-weight: 700;
}

.comm-new[b-kkn1slcbo9]::before {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--unread-alert);
}

.comm-group[b-kkn1slcbo9] {
	display: flex;
	gap: var(--space-4);
}

[b-kkn1slcbo9] .comm-avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}

/* A pictured emit whose character has no picture: the room it would take, empty. */
[b-kkn1slcbo9] .comm-avatar--none {
	display: block;
}

[b-kkn1slcbo9] .comm-avatar--initials {
	display: grid;
	place-items: center;
	font-size: var(--text-sm);
	font-weight: 700;
}

/* A line that names nobody: its time where the picture would be, the text in line with the others. */
.comm-emit[b-kkn1slcbo9] {
	display: flex;
	align-items: baseline;
	gap: var(--space-4);
}

.comm-emit .comm-time[b-kkn1slcbo9] {
	width: 40px;
	flex-shrink: 0;
	text-align: center;
}

.comm-emit .comm-text[b-kkn1slcbo9] {
	min-width: 0;
	flex: 1;
}

.comm-body[b-kkn1slcbo9] {
	min-width: 0;
	flex: 1;
}

.comm-meta[b-kkn1slcbo9] {
	display: flex;
	align-items: baseline;
	gap: var(--space-3);
}

.comm-name[b-kkn1slcbo9] {
	font-size: var(--text-base);
	font-weight: 700;
}

.comm-time[b-kkn1slcbo9] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.comm-text[b-kkn1slcbo9] {
	font-size: var(--text-base);
	line-height: 1.6;
	white-space: pre-wrap;
	overflow-wrap: anywhere;
}

.comm-compose[b-kkn1slcbo9] {
	flex-shrink: 0;
	padding: 0 var(--space-4) var(--space-4);
}

.comm-compose-row[b-kkn1slcbo9] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
}

.comm-input[b-kkn1slcbo9] {
	flex: 1;
	min-width: 0;
	height: 40px;
	border: 0;
	background: transparent;
	color: var(--text);
	font: inherit;
	font-size: var(--text-base);
	outline: none;
}

.comm-input[b-kkn1slcbo9]::placeholder {
	color: var(--text-faint);
}

.comm-send[b-kkn1slcbo9] {
	height: 40px;
	padding: 0 var(--space-6);
	border: 0;
	border-radius: 20px;
	background: var(--accent);
	color: var(--accent-on);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.comm-send:disabled[b-kkn1slcbo9] {
	opacity: 0.45;
	cursor: default;
}

/* The member list: beside the lines where the view has room for both, over them where it does not (the view's
   own width, so a sidebar beside it counts). The header's members button flips whichever it starts as. */
.comm-members[b-kkn1slcbo9] {
	width: 220px;
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	padding: var(--space-4);
	border-left: 1px solid var(--border);
	overflow-y: auto;
}

.comm--members-toggled .comm-members[b-kkn1slcbo9] {
	display: none;
}

@container comm (max-width: 44rem) {
	.comm-members[b-kkn1slcbo9] {
		display: none;
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		width: min(260px, 80%);
		background: var(--surface);
		box-shadow: var(--shadow-pop);
		z-index: 1;
	}

	.comm--members-toggled .comm-members[b-kkn1slcbo9] {
		display: flex;
	}
}

.comm-members-head[b-kkn1slcbo9] {
	font-size: var(--text-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--text-dim);
}

.comm-members-list[b-kkn1slcbo9] {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.comm-member[b-kkn1slcbo9] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	min-width: 0;
}

[b-kkn1slcbo9] .comm-avatar--small {
	width: 28px;
	height: 28px;
	font-size: var(--text-xs);
}

.comm-member-name[b-kkn1slcbo9] {
	font-size: var(--text-base);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
/* /Components/Play/ExitsCard.razor.rz.scp.css */
.exits[b-8qwdpjjhvn] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

/* Not positioned, and a grid: the preview's static position is then this tile's top-left, and its
   containing block lies outside the scrolling aside, which would otherwise clip it. minmax(0, 1fr): an
   auto column grows to the tile's min-content, the whole unwrapped name beside its pill, and pushes the
   pill and the hint past the narrow aside's edge; this keeps the tile to the card's width. */
.exit[b-8qwdpjjhvn] {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
}

.exit-go[b-8qwdpjjhvn] {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--space-2);
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--text);
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.exit-go:disabled[b-8qwdpjjhvn] {
	cursor: default;
}

.exit-go:focus-visible[b-8qwdpjjhvn],
.exit-preview button:focus-visible[b-8qwdpjjhvn],
.exit-confirm button:focus-visible[b-8qwdpjjhvn] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
	border-radius: var(--radius-tile);
}

.exit-media[b-8qwdpjjhvn] {
	position: relative;
	display: block;
	width: 100%;
}

.exit-img[b-8qwdpjjhvn] {
	width: 100%;
	height: 52px;
	object-fit: cover;
	border-radius: var(--radius-tile);
	display: block;
}

/* Dimmed, not filtered: the picture keeps the theme's tone (game-picture, shell.css). */
.exit--locked .exit-img[b-8qwdpjjhvn],
.exit--closed .exit-img[b-8qwdpjjhvn] {
	opacity: 0.6;
}

.exit-pill[b-8qwdpjjhvn] {
	position: absolute;
	top: 6px;
	left: 6px;
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	padding: var(--space-1) var(--space-3);
	border-radius: 11px;
	font-size: var(--text-xs);
	font-weight: 600;
	background: var(--glass-pill-bg);
	color: var(--text-on-image);
}

/* Beside the name on a row without a picture, in the flow rather than over an image. */
.exit--plain .exit-pill[b-8qwdpjjhvn] {
	position: static;
	flex-shrink: 0;
}

/* In the narrow aside a pill moves under the name rather than cutting it short. A row with no pill
   keeps its one line, the name truncating beside the key. */
.exits--tiles .exit--plain .exit-row:has(> .exit-pill)[b-8qwdpjjhvn] {
	flex-wrap: wrap;
	row-gap: var(--space-2);
}

.exits--tiles .exit--plain .exit-row:has(> .exit-pill) > .exit-name[b-8qwdpjjhvn] {
	flex: 1 0 auto;
	max-width: 100%;
}

.exit--plain .exit-pill:not(.exit-pill--scene)[b-8qwdpjjhvn] {
	background: var(--surface-3);
	color: var(--text-dim);
}

.exit--plain .exit-go[b-8qwdpjjhvn] {
	padding: var(--space-3) var(--space-4);
	border-radius: var(--radius-tile);
	background: var(--surface-2);
}

.exit-pill--scene[b-8qwdpjjhvn] {
	background: var(--warn-tint);
	color: var(--warn);
}

.exit-text[b-8qwdpjjhvn] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	min-width: 0;
}

.exit-row[b-8qwdpjjhvn] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	min-width: 0;
}

.exit-name[b-8qwdpjjhvn] {
	flex: 1;
	min-width: 0;
	font-size: var(--text-sm);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.exit-key[b-8qwdpjjhvn] {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	line-height: 1;
	padding: var(--space-2) var(--space-2);
	border: 1px solid var(--border);
	border-radius: 5px;
	color: var(--text-dim);
}

.exit-sub[b-8qwdpjjhvn] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.exit-dest[b-8qwdpjjhvn] {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	min-width: 0;
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.exit-dest[b-8qwdpjjhvn]  .mud-icon-root {
	flex-shrink: 0;
	font-size: var(--text-base);
}

.exit-dest-name[b-8qwdpjjhvn] {
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* the mobile Room sheet: a list of rows, picture left (board 11) */
.exits--rows .exit-go[b-8qwdpjjhvn] {
	flex-direction: row;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-3);
	border-radius: 12px;
	background: var(--surface-2);
}

.exits--rows .exit-media[b-8qwdpjjhvn] {
	width: 72px;
	flex-shrink: 0;
}

.exits--rows .exit-img[b-8qwdpjjhvn] {
	height: 44px;
}

.exits--rows .exit-pill[b-8qwdpjjhvn] {
	display: none;
}

.exits--rows .exit-text[b-8qwdpjjhvn] {
	flex: 1;
}

.exits--rows .exit-name[b-8qwdpjjhvn] {
	font-size: var(--text-base);
	font-weight: 600;
}

/* hover / focus preview (board 10), beside the aside. The wrapper reaches back to the tile: its
   right padding is the gap the panel keeps, so the pointer stays over this .exit while crossing to Go
   and Look. Hiding waits a moment, so a diagonal path that grazes the edge does not close it. */
.exit-preview[b-8qwdpjjhvn] {
	display: none;
	position: absolute;
	transform: translateX(-100%);
	width: 312px;
	padding-right: var(--space-4);
	box-sizing: border-box;
	z-index: 5;
	transition: display 0s var(--delay-hover-leave) allow-discrete;
}

.exit:hover .exit-preview[b-8qwdpjjhvn],
.exit:focus-within .exit-preview[b-8qwdpjjhvn] {
	display: block;
	z-index: 6;
	transition-delay: 0s;
}

.exit-preview-panel[b-8qwdpjjhvn] {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-card);
	box-shadow: var(--shadow);
	overflow: hidden;
}

.exit-preview-img[b-8qwdpjjhvn] {
	width: 100%;
	height: 100px;
	object-fit: cover;
	display: block;
}

.exit-preview-body[b-8qwdpjjhvn] {
	padding: var(--space-4);
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.exit-preview-name[b-8qwdpjjhvn] {
	flex: 1;
	font-size: var(--text-base);
	font-weight: 700;
}

.exit-preview-desc[b-8qwdpjjhvn] {
	margin: 0;
	font-size: var(--text-sm);
	line-height: 1.45;
	color: var(--text-dim);
}

.exit-preview-there[b-8qwdpjjhvn] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.exit-preview-actions[b-8qwdpjjhvn],
.exit-confirm-actions[b-8qwdpjjhvn] {
	display: flex;
	gap: var(--space-3);
}

.exit-preview-actions button[b-8qwdpjjhvn],
.exit-confirm-actions button[b-8qwdpjjhvn] {
	flex: 1;
	height: 36px;
	border-radius: 18px;
	border: 1px solid var(--border);
	background: transparent;
	color: var(--text);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.exit-preview-actions .exit-preview-go[b-8qwdpjjhvn],
.exit-confirm-actions .exit-confirm-go[b-8qwdpjjhvn] {
	background: var(--accent);
	color: var(--accent-on);
	border-color: transparent;
}

.exit-confirm[b-8qwdpjjhvn] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	padding: var(--space-4);
	margin-bottom: 10px;
	border-radius: 12px;
	background: var(--warn-tint);
}

.exit-confirm-text[b-8qwdpjjhvn] {
	font-size: var(--text-sm);
	color: var(--text);
}
/* /Components/Play/HereCard.razor.rz.scp.css */
.here-grid[b-ap3egg6u6f] {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-4) var(--space-3);
}

.here-thing[b-ap3egg6u6f] {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--space-2);
	min-width: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--text);
	font: inherit;
	font-size: var(--text-sm);
	text-align: left;
	cursor: pointer;
}

.here-thing:disabled[b-ap3egg6u6f] {
	cursor: default;
}

.here-thing:focus-visible[b-ap3egg6u6f] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
	border-radius: var(--radius-tile);
}

/* objects are square thumbnails, beside the portraits' taller tiles (board 10) */
.here-thing-img[b-ap3egg6u6f] {
	width: 100%;
	aspect-ratio: 1;
	max-height: 72px;
	object-fit: cover;
	border-radius: var(--radius-tile);
	display: block;
}

.here-thing-fallback[b-ap3egg6u6f] {
	display: grid;
	place-items: center;
	background: var(--surface-2);
	color: var(--text-faint);
}

.here-thing-label[b-ap3egg6u6f] {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
/* /Components/Play/PlayComposer.razor.rz.scp.css */
/* The chips and the tools share the top line, the field and Send the next. In a narrow composer (a phone) the four
   chips take the top line to themselves, the field its full width, and the tools sit on Send's line below it, so
   no chip wraps and the field is not squeezed beside two buttons. */
.composer-scope[b-qbcr83betu] {
	container-type: inline-size;
}

.composer-grid[b-qbcr83betu] {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"chips tools"
		"input send";
	align-items: center;
	gap: var(--space-3) var(--space-4);
}

.composer-chips[b-qbcr83betu] {
	grid-area: chips;
	min-width: 0;
}

/* Compact chips: the composer is always on screen, so its mode chips stay small. Each keeps a 44px tap area
   (the shell's touch target) through an invisible ::after, which also covers the gap to its neighbour. */
.composer-chips[b-qbcr83betu]  .kit-chip {
	position: relative;
	height: 26px;
	min-height: 0;
	padding: 0 var(--space-4);
	border-radius: 13px;
	font-size: var(--text-sm);
}

.composer-chips[b-qbcr83betu]  .kit-chip::after {
	content: "";
	position: absolute;
	inset: -9px -3px;
}

.composer-tools[b-qbcr83betu] {
	grid-area: tools;
	display: flex;
	align-items: center;
	gap: var(--space-2);
}

@container (max-width: 28rem) {
	.composer-grid[b-qbcr83betu] {
		grid-template-areas:
			"chips chips"
			"input input"
			"tools send";
	}
}

/* The tools: icon toggles of one size and one look, pressed when on, so the %r toggle, the expand button and the
   formatting buttons still to come read as one toolbar. */
.composer-tool[b-qbcr83betu] {
	position: relative;
	width: 32px;
	height: 32px;
	display: grid;
	place-items: center;
	flex-shrink: 0;
	padding: 0;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: var(--text-dim);
	cursor: pointer;
}

/* A 44px tap area around the 32px button, as the chips have. */
.composer-tool[b-qbcr83betu]::after {
	content: "";
	position: absolute;
	inset: -6px -2px;
}

.composer-tool:hover[b-qbcr83betu],
.composer-tool[aria-pressed="true"][b-qbcr83betu] {
	background: var(--surface-3);
	color: var(--text);
}

.composer-tool:focus-visible[b-qbcr83betu] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

/* The field (FormattedInput) renders the textarea, so the rules reach it through ::deep. */
.composer-grid[b-qbcr83betu]  .composer-field {
	grid-area: input;
	align-self: end;
	min-width: 0;
}

.composer-grid[b-qbcr83betu]  .composer-input {
	min-width: 0;
	min-height: 40px;
	max-height: 160px;
	padding: var(--space-3) var(--space-2);
	resize: none;
	field-sizing: content;
	border: 0;
	background: transparent;
	color: var(--text);
	font: inherit;
	font-size: var(--text-base);
	line-height: 1.45;
	outline: none;
}

/* Expanded: the field takes most of the screen, so a long post can be read whole while writing it. */
.composer--expanded .composer-grid[b-qbcr83betu]  .composer-input {
	min-height: 40vh;
	max-height: 60vh;
	field-sizing: fixed;
}

.composer-grid[b-qbcr83betu]  .composer-input::placeholder {
	color: var(--text-faint);
}

.composer-grid[b-qbcr83betu]  .composer-input--command {
	font-family: var(--font-mono);
	font-size: var(--text-base);
}

.composer-send[b-qbcr83betu] {
	grid-area: send;
	align-self: end;
	justify-self: end;
	height: 40px;
	padding: 0 var(--space-6);
	border: 0;
	border-radius: 20px;
	background: var(--accent);
	color: var(--accent-on);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	flex-shrink: 0;
}

.composer-send:disabled[b-qbcr83betu] {
	opacity: 0.45;
	cursor: default;
}

.composer-send:focus-visible[b-qbcr83betu] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}
/* /Components/Play/PlayControl.razor.rz.scp.css */
/* The Room panel's button, only while the aside is not on screen (below; and focus mode). Qualified by
   .play-conn, whose display: grid comes later in this file. */
.play-conn.play-room-btn[b-uzmy9y09ib] {
    display: none;
}

.play--focus .play-conn.play-room-btn[b-uzmy9y09ib] {
    display: grid;
}

.play-conn[b-uzmy9y09ib] {
    display: grid;
    place-items: center;
    min-width: 36px;
    height: 36px;
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: 10px;
    background: transparent;
    color: var(--text-dim);
    font: inherit;
    font-size: var(--text-sm);
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

.play-conn:hover[b-uzmy9y09ib] {
    background: var(--surface-2);
    color: var(--warn);
}

.play-conn--connect[b-uzmy9y09ib] {
    padding: 0 var(--space-5);
    background: var(--accent);
    color: var(--accent-on);
}

.play-conn--connect:hover[b-uzmy9y09ib] {
    background: var(--accent);
    color: var(--accent-on);
    filter: brightness(1.08);
}

.play-conn:focus-visible[b-uzmy9y09ib] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

/* On the room's picture (the banner's controls row): 44px glass buttons, a full touch target. */
.play-banner-more .play-conn[b-uzmy9y09ib] {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(var(--scrim-ink), 0.55);
    color: var(--text-on-image);
    backdrop-filter: blur(6px);
}

/* Narrow (board 11): no aside, so the Room panel's button shows. */
@container page (max-width: 48rem) {
    .play-conn.play-room-btn[b-uzmy9y09ib] {
        display: grid;
    }
}
/* /Components/Play/PlayGate.razor.rz.scp.css */
/* The pre-terminal states: resolving the roster, and "signed in but no character yet".
   Centred in the play area rather than pinned to the top-left corner, because there is no
   terminal beside it to anchor the eye. */
.play-gate[b-hzbe3go5sb] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: var(--cpad);
}

/* ::deep — the element itself is rendered by EmptyState, so it does not carry
   this component's scope attribute even though the class name is passed down from here. */
.play-gate[b-hzbe3go5sb]  .play-gate-card {
    max-width: 30rem;
}
/* /Components/Play/PlayHeaderLead.razor.rz.scp.css */
/* On touch chrome a menu button before the avatar opens the navigation drawer (the shell's header is merged away). */
.play-lead[b-5z83rs42zw] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.play-menu-btn[b-5z83rs42zw] {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    margin-left: -8px;
    padding: 0;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--text-dim);
    cursor: pointer;
    position: relative;
}

/* Unread channels or pages, on the menu button that opens them. */
.play-menu-dot[b-5z83rs42zw] {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 2px var(--surface);
}

.play-menu-btn:hover[b-5z83rs42zw] {
    background: var(--surface-2);
    color: var(--text);
}

.play-menu-btn:focus-visible[b-5z83rs42zw] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

/* The viewer in the card header: a 32px avatar with a connection dot. */
.play-me[b-5z83rs42zw] {
    position: relative;
    display: block;
    width: 32px;
    height: 32px;
    flex-shrink: 0;
}

[b-5z83rs42zw] .play-me-img,
[b-5z83rs42zw] .play-me-initial {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    font-size: var(--text-base);
    font-weight: 700;
}

.play-me-dot[b-5z83rs42zw] {
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 2px solid var(--surface);
    background: var(--text-faint);
}

.play-me--on .play-me-dot[b-5z83rs42zw] {
    background: var(--accent);
}

/* Read by a screen reader with the name; the dot says it to the eye. */
.play-me-status[b-5z83rs42zw] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

/* A 320–360px phone: with the header's four buttons (focus mode, or before a room has come and the banner can take
   them), the menu button and the avatar leave the name almost no width, so the picture steps back (the power button
   still says whether the character is connected). Otherwise two buttons remain and the avatar keeps its place. This
   queries the header's own container (PlaySceneCard.razor.css), whose content box is 344px on a 390px phone, not
   the page's: page tiers are fixed at 48 / 64 / 90rem. */
@container (max-width: 20rem) {
    .play--focus .play-lead .play-me[b-5z83rs42zw],
    .play:not(.play--room) .play-lead .play-me[b-5z83rs42zw] {
        display: none;
    }
}
/* /Components/Play/PlayMobileSheet.razor.rz.scp.css */
/* A phone's side panels, as a chat app's: Play's sidebar from the left, the Room panel from the right, full
   height on MudOverlay's fixed layer (§4.12), clear of the notch and the home indicator. */
.play-sheet[b-2p5lcx3zqb] {
    position: relative;
    width: min(320px, 86vw);
    height: 100vh;
    height: 100svh;
    overflow-y: auto;
    padding: max(var(--space-4), env(safe-area-inset-top)) var(--space-5) max(var(--space-6), env(safe-area-inset-bottom));
    background: var(--surface);
    text-align: left;
    cursor: default;
    outline: none;
}

.play-sheet--side[b-2p5lcx3zqb] {
    padding-left: max(var(--space-5), env(safe-area-inset-left));
    border-right: 1px solid var(--border);
    border-radius: 0 18px 18px 0;
}

.play-sheet--room[b-2p5lcx3zqb] {
    padding-right: max(var(--space-5), env(safe-area-inset-right));
    border-left: 1px solid var(--border);
    border-radius: 18px 0 0 18px;
}

/* The room's details, dropped from the top over the page (a chat app's channel details): the banner and its
   controls row, as tall as they are. */
.play-sheet--details[b-2p5lcx3zqb] {
    box-sizing: border-box;
    width: 100vw;
    height: auto;
    padding: max(var(--space-3), env(safe-area-inset-top)) max(var(--space-3), env(safe-area-inset-right)) var(--space-3) max(var(--space-3), env(safe-area-inset-left));
    background: transparent;
}
/* /Components/Play/PlayRoomTabs.razor.rz.scp.css */
.play-sheet-tabs[b-uyafkm8ev0] {
    display: flex;
    padding: var(--space-2);
    gap: var(--space-2);
    margin-bottom: 12px;
    border-radius: 14px;
    background: var(--surface-3);
}

.play-sheet-tab[b-uyafkm8ev0] {
    flex: 1;
    height: 38px;
    border: 0;
    border-radius: 11px;
    background: transparent;
    color: var(--text-dim);
    font: inherit;
    font-size: var(--text-base);
    font-weight: 600;
    cursor: pointer;
}

.play-sheet-tab--on[b-uyafkm8ev0] {
    background: var(--surface-2);
    color: var(--text);
}

.play-sheet-tab:focus-visible[b-uyafkm8ev0] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}
/* /Components/Play/PlaySceneCard.razor.rz.scp.css */
.scene-card[b-n15u3p5du3] {
	display: flex;
	flex-direction: column;
	min-height: 0;
	height: 100%;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 16px;
	/* The corner inside the border, for what sits flush in the card's corners (the terminal's input row, whose
	   focus ring follows it, shell.css). */
	--scene-card-inner-radius: 15px;
	overflow: hidden;
}

/* The opened room banner, as the card's top: the card's edge and corners are its own, and no rule parts it from the
   header. The picture's foot fades into the header's wash, the dark the picture's own scrim ends on, so the two read
   as one surface. The wash is dark in every theme, so the header's text takes the on-image colours. */
.scene-card-banner[b-n15u3p5du3] {
	flex-shrink: 0;
	--banner-foot: color-mix(in srgb, rgb(var(--scrim-ink)) 72%, var(--surface));
}

.scene-card-banner[b-n15u3p5du3]  .kit-banner {
	border-width: 0;
	border-radius: 0;
}

.scene-card-banner[b-n15u3p5du3]  .kit-banner-scrim {
	background: linear-gradient(to top, var(--banner-foot) 0%, transparent 30%), var(--scrim);
}

.scene-card-banner[b-n15u3p5du3]  .kit-banner--open .kit-banner-scrim {
	background: linear-gradient(to top, var(--banner-foot) 0%, transparent 30%), var(--scrim-open);
}

.scene-card-banner:has(.kit-banner) + .scene-card-head[b-n15u3p5du3] {
	background: color-mix(in srgb, rgb(var(--scrim-ink)) 72%, var(--surface));
}

/* Over the picture or the wash, the header's text and buttons are light in every theme: what reads --text there
   (the title, Play's buttons) reads the on-image colours instead. */
.scene-card-head--image[b-n15u3p5du3],
.scene-card-banner:has(.kit-banner) + .scene-card-head[b-n15u3p5du3] {
	--text: var(--text-over-image);
	--text-dim: var(--text-on-image);
	color: var(--text-over-image);
}

.scene-card-banner:has(.kit-banner) + .scene-card-head .scene-card-titles[b-n15u3p5du3] {
	text-shadow: var(--on-image-shadow);
}

.scene-card-banner:has(.kit-banner) + .scene-card-head .scene-card-sub[b-n15u3p5du3] {
	color: var(--text-on-image);
}

.scene-card-head[b-n15u3p5du3] {
	/* A container of its own, so what sits in it can answer to the header's width (Play's avatar). */
	container-type: inline-size;
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-4) var(--space-4) var(--space-4) var(--space-5);
	border-bottom: 1px solid var(--border);
	flex-shrink: 0;
}

/* The room's picture behind the header while no banner shows it: the strip's look, at the header's height. */
.scene-card-head--image[b-n15u3p5du3] {
	position: relative;
	border-bottom-color: transparent;
}

.scene-card-head-img[b-n15u3p5du3] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.scene-card-head-scrim[b-n15u3p5du3] {
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(var(--scrim-ink), 0.8) 0%, rgba(var(--scrim-ink), 0.58) 45%, rgba(var(--scrim-ink), 0.42) 100%);
	pointer-events: none;
}

/* Positioned after the image and scrim, so they paint above them. */
.scene-card-head--image > :not(.scene-card-head-img):not(.scene-card-head-scrim)[b-n15u3p5du3] {
	position: relative;
}

.scene-card-head--image .scene-card-titles[b-n15u3p5du3] {
	text-shadow: var(--on-image-shadow);
}

.scene-card-head--image .scene-card-sub[b-n15u3p5du3] {
	color: var(--text-on-image);
}

.scene-card-lead[b-n15u3p5du3] {
	flex-shrink: 0;
}

.scene-card-titles[b-n15u3p5du3] {
	flex: 1;
	min-width: 0;
}

.scene-card-title[b-n15u3p5du3] {
	margin: 0;
	font-size: var(--text-base);
	font-weight: 700;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.scene-card-sub[b-n15u3p5du3] {
	font-size: var(--text-sm);
	color: var(--text-dim);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.scene-card-switch[b-n15u3p5du3] {
	display: flex;
	padding: var(--space-2);
	gap: var(--space-1);
	border-radius: 20px;
	background: var(--surface-3);
	flex-shrink: 0;
}

.scene-card-radio[b-n15u3p5du3] {
	width: 36px;
	height: 30px;
	display: grid;
	place-items: center;
	padding: 0;
	border: 0;
	border-radius: 17px;
	background: transparent;
	color: var(--text-dim);
	cursor: pointer;
}

.scene-card-radio--on[b-n15u3p5du3] {
	background: var(--surface-2);
	color: var(--text);
}

.scene-card-radio:focus-visible[b-n15u3p5du3],
.scene-card-viewtoggle:focus-visible[b-n15u3p5du3],
.scene-card-focus:focus-visible[b-n15u3p5du3] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.scene-card-focus[b-n15u3p5du3] {
	width: 36px;
	height: 36px;
	display: grid;
	place-items: center;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: var(--text-dim);
	cursor: pointer;
	flex-shrink: 0;
}

/* The single view toggle shows only in the narrow tier, in the pair's place. */
.scene-card-viewtoggle[b-n15u3p5du3] {
	display: none;
	width: 36px;
	height: 36px;
	place-items: center;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: var(--text-dim);
	cursor: pointer;
	flex-shrink: 0;
}

.scene-card-viewtoggle:hover[b-n15u3p5du3],
.scene-card-focus:hover[b-n15u3p5du3] {
	background: var(--surface-2);
	color: var(--text);
}

.scene-card-focus--on[b-n15u3p5du3] {
	background: color-mix(in srgb, var(--accent) 18%, transparent);
	color: var(--accent);
}

/* The sub-line as a button (the folded banner): the same line, with a chevron and a hover. */
.scene-card-sub--action[b-n15u3p5du3] {
	display: flex;
	align-items: center;
	gap: var(--space-1);
	max-width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	font: inherit;
	font-size: var(--text-sm);
	text-align: left;
	cursor: pointer;
}

/* The name opens the banner too (a bigger target than the sub-line on a phone); the sub-line stays the
   keyboard's way in. */
.scene-card-title--action[b-n15u3p5du3] {
	cursor: pointer;
}

.scene-card-sub-text[b-n15u3p5du3] {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}

.scene-card-sub--action:hover[b-n15u3p5du3] {
	color: var(--text);
}

.scene-card-sub--action:focus-visible[b-n15u3p5du3] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
	border-radius: 4px;
}

.scene-card-body[b-n15u3p5du3] {
	flex: 1;
	min-height: 0;
	display: flex;
	flex-direction: column;
}

.scene-card-foot[b-n15u3p5du3] {
	flex-shrink: 0;
	padding: 0 var(--space-4) var(--space-4);
}

/* Narrow: the header wraps rather than squeeze the title to nothing on a 320–360px phone. The name stays
   over the room (or scene), as on larger screens, so a long name does not push the room out. */
@container page (max-width: 48rem) {
	.scene-card-head[b-n15u3p5du3] {
		flex-wrap: wrap;
		gap: var(--space-3);
		row-gap: var(--space-3);
		padding-top: var(--space-3);
		padding-bottom: var(--space-3);
	}

	/* The two-icon pair costs 80px of a row that the name and the room need; one toggle costs 36. */
	.scene-card-switch[b-n15u3p5du3] {
		display: none;
	}

	.scene-card-viewtoggle[b-n15u3p5du3] {
		display: grid;
	}
}

/* Over the room's picture the header's icon buttons get a faint glass backing and a soft shadow on the glyph, the
   banner's capsules in a lighter dose, so they read on a light picture as well as a dark one. */
.scene-card-head--image :is(.scene-card-focus, .scene-card-viewtoggle)[b-n15u3p5du3],
.scene-card-head--image[b-n15u3p5du3]  :is(.play-menu-btn, .play-conn:not(.play-conn--connect), .play-settings-btn) {
	background: var(--glass-bg);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.scene-card-head--image .scene-card-switch[b-n15u3p5du3] {
	background: var(--glass-bg);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.scene-card-head--image[b-n15u3p5du3]  svg {
	filter: drop-shadow(0 1px 2px rgba(var(--scrim-ink), 0.6));
}
/* /Components/Play/PlaySceneHint.razor.rz.scp.css */
/* The room has a scene: one line above the terminal that opens its Story, and a close button that hides it. */
.play-scene-hint[b-comuwo6kaq] {
    flex-shrink: 0;
    display: flex;
    align-items: stretch;
    margin: 8px 4px 4px;
    border: 1px solid rgba(var(--glow), 0.35);
    border-radius: 8px;
    background: rgba(var(--glow), 0.08);
    color: var(--text);
    font-size: var(--text-sm);
    container-type: inline-size;
}

.play-scene-hint-open[b-comuwo6kaq] {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-3) var(--space-4);
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    text-align: start;
    cursor: pointer;
}

.play-scene-hint-open[b-comuwo6kaq]  .mud-icon-root {
    color: var(--accent);
}

.play-scene-hint-text[b-comuwo6kaq] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.play-scene-hint-label[b-comuwo6kaq] {
    color: var(--text-dim);
}

.play-scene-hint-title[b-comuwo6kaq] {
    margin-inline-start: 6px;
    font-weight: 600;
}

/* Narrow: the scene's title alone says it; the label gives way first. */
@container (max-width: 26rem) {
    .play-scene-hint-label[b-comuwo6kaq] {
        display: none;
    }

    .play-scene-hint-title[b-comuwo6kaq] {
        margin-inline-start: 0;
    }
}

.play-scene-hint-action[b-comuwo6kaq] {
    flex-shrink: 0;
    color: var(--accent);
    font-weight: 600;
}

.play-scene-hint-open:hover .play-scene-hint-action[b-comuwo6kaq] {
    text-decoration: underline;
}

.play-scene-hint-hide[b-comuwo6kaq] {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: 34px;
    border: 0;
    border-inline-start: 1px solid rgba(var(--glow), 0.2);
    background: none;
    color: var(--text-dim);
    cursor: pointer;
}

.play-scene-hint-hide:hover[b-comuwo6kaq] {
    color: var(--text);
}

.play-scene-hint-open:focus-visible[b-comuwo6kaq],
.play-scene-hint-hide:focus-visible[b-comuwo6kaq] {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
    border-radius: 8px;
}
/* /Components/Play/PlaySceneJoinBar.razor.rz.scp.css */
/* The Story's footer while the viewer is not focused on the room's scene: say so, and offer to join. */
.play-join[b-s4ys1n81wu] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-5);
    font-size: var(--text-sm);
    color: var(--text-dim);
}

.play-join-text[b-s4ys1n81wu] {
    flex: 1;
    min-width: 0;
}

.play-join-refusal[b-s4ys1n81wu] {
    display: block;
    margin-top: 4px;
    color: var(--warn);
}

.play-join-btn[b-s4ys1n81wu] {
    flex-shrink: 0;
    padding: var(--space-3) var(--space-5);
    border: 0;
    border-radius: 8px;
    background: var(--accent);
    color: var(--accent-on);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.play-join-btn:disabled[b-s4ys1n81wu] {
    opacity: 0.5;
    cursor: default;
}
/* /Components/Play/PlaySidebar.razor.rz.scp.css */
.play-side[b-i879gntn5i] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}

.play-side--collapsed[b-i879gntn5i] {
	align-items: center;
	gap: var(--space-3);
}

.play-side-scene[b-i879gntn5i],
.play-side-channels[b-i879gntn5i],
.play-side-pages[b-i879gntn5i] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}

.play-side--collapsed .play-side-scene[b-i879gntn5i],
.play-side--collapsed .play-side-channels[b-i879gntn5i],
.play-side--collapsed .play-side-pages[b-i879gntn5i] {
	align-items: center;
	gap: var(--space-3);
	padding-bottom: var(--space-3);
	border-bottom: 1px solid var(--border);
}

.play-side-command[b-i879gntn5i] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	white-space: nowrap;
	color: var(--text);
}

/* The Channels heading with its Browse/Done toggle on the same line. */
.play-side-head[b-i879gntn5i] {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
	padding-right: var(--space-3);
	margin-bottom: 4px;
}

.play-side-head[b-i879gntn5i]  .kit-section-label {
	padding-bottom: 0;
}

.play-side-browse[b-i879gntn5i] {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	height: 24px;
	padding: 0 var(--space-3);
	border: 1px solid var(--border);
	border-radius: 12px;
	background: transparent;
	color: var(--text-dim);
	font: inherit;
	font-size: var(--text-sm);
	cursor: pointer;
}

.play-side-browse:hover[b-i879gntn5i] {
	background: var(--surface-2);
	color: var(--text);
}

.play-side-browse[aria-expanded="true"][b-i879gntn5i] {
	border-color: var(--accent);
	color: var(--accent);
}

.play-side-browse:focus-visible[b-i879gntn5i] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}
/* /Components/Play/PlayTerminalSettings.razor.rz.scp.css */
.play-settings-btn[b-oqcrcsoltz] {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: 10px;
    background: transparent;
    color: var(--text-dim);
    cursor: pointer;
}

.play-settings-btn:hover[b-oqcrcsoltz] {
    background: var(--surface-2);
    color: var(--text);
}

/* On the room's picture (the banner's controls row): 44px glass buttons, a full touch target. */
.play-banner-more .play-settings-btn[b-oqcrcsoltz] {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(var(--scrim-ink), 0.55);
    color: var(--text-on-image);
    backdrop-filter: blur(6px);
}

.play-settings-btn:focus-visible[b-oqcrcsoltz] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

/* Terminal settings menu (Width / Focus / Clear). */
.play-cfg[b-oqcrcsoltz] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    padding: var(--space-3);
    min-width: 12rem;
}
.play-cfg-kicker[b-oqcrcsoltz] {
    font-family: var(--font-kicker);
    font-size: var(--text-xs);
    letter-spacing: var(--kicker-tracking);
    text-transform: uppercase;
    color: var(--text-faint);
    padding: var(--space-1) var(--space-3) var(--space-2);
}
.play-cfg-row[b-oqcrcsoltz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-3) var(--space-3);
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    color: var(--text-dim);
}
.play-cfg-item[b-oqcrcsoltz] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    width: 100%;
    padding: var(--space-3);
    background: transparent;
    border: none;
    border-radius: var(--radius);
    color: var(--text-dim);
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    text-align: left;
    cursor: pointer;
    min-height: 36px;
}
.play-cfg-item:hover[b-oqcrcsoltz] {
    background: var(--surface-2);
    color: var(--text);
}
.play-cols-input[b-oqcrcsoltz] {
    width: 3.5rem;
    height: 1.625rem;
    padding: 0 var(--space-3);
    background: var(--surface-2);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius);
    color: var(--text);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    text-align: right;
}
.play-cols-input:focus[b-oqcrcsoltz] {
    outline: none;
    border-color: var(--accent);
}
.play-cfg-check[b-oqcrcsoltz] {
    width: 1rem;
    height: 1rem;
    accent-color: var(--accent);
}
.play-cfg-note[b-oqcrcsoltz] {
    max-width: 16rem;
    padding: 0 var(--space-3) var(--space-3);
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    line-height: 1.4;
    color: var(--text-dim);
}
/* /Components/Play/RoomBanner.razor.rz.scp.css */
.room-banner-desc-text[b-p2wshgww4z] {
	white-space: pre-line;
	font-size: var(--text-sm);
	line-height: 1.5;
	max-width: 60ch;
}
/* /Components/Scenes/CalendarFeedCard.razor.rz.scp.css */
/* A sub-line that wraps on a phone still clears the card's edge. */
.calendar-feed-wrap[b-pbdzrxwxij]  .kit-card-head {
    padding-block: var(--space-4);
}

.calendar-feed-body[b-pbdzrxwxij] {
    padding: var(--space-5) var(--space-5) var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.calendar-feed-head[b-pbdzrxwxij] {
    margin: 0 0 4px;
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--text);
}

.calendar-feed-text[b-pbdzrxwxij],
.calendar-feed-note[b-pbdzrxwxij] {
    margin: 0 0 8px;
    font-size: var(--text-sm);
    color: var(--text-dim);
}

.calendar-feed-note[b-pbdzrxwxij] {
    margin: 8px 0 0;
}

/* The address, then Copy and Subscribe; on a phone the address takes a line of its own. */
.calendar-feed-address[b-pbdzrxwxij] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
}

.calendar-feed-url[b-pbdzrxwxij] {
    flex: 1 1 18rem;
    min-width: 0;
    height: 36px;
    padding: 0 var(--space-4);
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface-2);
    color: var(--text);
    font: inherit;
    font-family: var(--font-mono);
    font-size: var(--text-sm);
}

.calendar-feed-url:focus-visible[b-pbdzrxwxij] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.calendar-feed-actions[b-pbdzrxwxij] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: 10px;
}
/* /Components/Scenes/DetailValueLinks.razor.rz.scp.css */
.detail-value[b-vqlleptqwe] {
	color: var(--detail-tone, inherit);
	text-decoration: none;
	border-radius: 4px;
}

.detail-value:hover[b-vqlleptqwe],
.detail-value:focus-visible[b-vqlleptqwe] {
	text-decoration: underline;
}
/* /Components/Scenes/PoseTypeMenu.razor.rz.scp.css */
.story-show[b-2hevxi76sb] {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: var(--space-3);
}

.story-show-menu[b-2hevxi76sb] {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: var(--space-2) var(--space-5);
	margin: 0;
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--border);
	border-radius: 12px;
	background: var(--surface-2);
}

/* Read by assistive tech; the button already says what the boxes are for. */
.story-show-legend[b-2hevxi76sb] {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.story-show-item[b-2hevxi76sb] {
	display: inline-flex;
	align-items: center;
	gap: var(--space-3);
	font-size: var(--text-sm);
	color: var(--text);
	cursor: pointer;
}

.story-show-item input[b-2hevxi76sb] {
	accent-color: var(--accent);
}

.story-show-item input:focus-visible[b-2hevxi76sb] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.story-show-error[b-2hevxi76sb] {
	font-size: var(--text-sm);
	color: var(--danger);
}
/* /Components/Scenes/SceneCard.razor.rz.scp.css */
/* D1 §4.4 card shape (surface, 1px border, radius 16) holding a board-30 feed row: the text on the
   left, the actions on the right; the row wraps its actions under the text when it runs out of room. */
.scene-card[b-lypf4tt61w] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-4) var(--space-5);
	padding: var(--space-5) var(--space-5);
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-card);
	container-type: inline-size;
	transition: border-color var(--motion-fade);
}

.scene-card:hover[b-lypf4tt61w],
.scene-card:focus-within[b-lypf4tt61w] {
	border-color: rgba(var(--glow), 0.4);
}

.scene-card-main[b-lypf4tt61w] {
	flex: 1 1 16rem;
	min-width: 0;
}

.scene-card-top[b-lypf4tt61w] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	min-width: 0;
}

.scene-card-title[b-lypf4tt61w] {
	margin: 0;
	min-width: 0;
	font-size: var(--text-base);
	font-weight: 700;
	color: var(--text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.scene-card-pitch[b-lypf4tt61w] {
	margin: 4px 0 0;
	font-size: var(--text-sm);
	color: var(--text-dim);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* the listed details, label then values, on one line that wraps between details, never inside a label */
.scene-card-details[b-lypf4tt61w] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-1) var(--space-5);
	margin: 4px 0 0;
	font-size: var(--text-sm);
}

.scene-card-detail[b-lypf4tt61w] {
	display: flex;
	gap: var(--space-2);
	min-width: 0;
}

.scene-card-detail dt[b-lypf4tt61w] {
	flex-shrink: 0;
	color: var(--text-faint);
}

.scene-card-detail dd[b-lypf4tt61w] {
	margin: 0;
	min-width: 0;
	color: var(--text);
	overflow-wrap: anywhere;
}

.scene-card-meta[b-lypf4tt61w] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-1) var(--space-3);
	margin-top: 3px;
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.scene-card-actions[b-lypf4tt61w] {
	display: flex;
	gap: var(--space-3);
	flex-shrink: 0;
}

/* in a narrow card the actions take the whole row, split evenly */
@container (max-width: 28rem) {
	.scene-card-actions[b-lypf4tt61w] {
		flex: 1 1 100%;
	}

	.scene-card-actions[b-lypf4tt61w]  .kit-capsule {
		flex: 1;
		justify-content: center;
	}
}
/* /Components/Scenes/SceneNotices.razor.rz.scp.css */
.scene-notices[b-6h9c3tq5mb] {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    border-bottom: 1px solid color-mix(in srgb, var(--accent) 40%, transparent);
}

.scene-notice[b-6h9c3tq5mb] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-3) var(--cpad);
    background: color-mix(in srgb, var(--accent) 14%, var(--surface));
    color: var(--text);
    font-size: var(--text-sm);
}

.scene-notice-text[b-6h9c3tq5mb] {
    flex: 1 1 auto;
    font-weight: 600;
}

.scene-notice-only[b-6h9c3tq5mb] {
    color: var(--text-dim);
    white-space: nowrap;
}

@container page (max-width: 48rem) {
    .scene-notice[b-6h9c3tq5mb] {
        padding: var(--space-3) var(--space-5);
        flex-wrap: wrap;
    }
}
/* /Components/Scenes/SceneStory.razor.rz.scp.css */
.story[b-vm139n717v] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}
/* /Components/Scenes/ScheduleAgenda.razor.rz.scp.css */
.schedule-agenda[b-3jhzdbfdi8] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

.schedule-day[b-3jhzdbfdi8] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

/* the day stays in view while its scenes scroll under it */
.schedule-day-head[b-3jhzdbfdi8] {
	position: sticky;
	top: 0;
	z-index: 1;
	margin: 0;
	padding: var(--space-3) 0;
	background: color-mix(in srgb, var(--bg) 85%, transparent);
	backdrop-filter: blur(8px);
	font-size: var(--text-sm);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--text-dim);
}

.schedule-rows[b-3jhzdbfdi8] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr));
	gap: var(--space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

/* each scene is a card of its own: the time a block on the left, the title, pitch and host beside it */
.schedule-row[b-3jhzdbfdi8] {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: var(--space-5);
	padding: var(--space-5) var(--space-5);
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-card);
	transition: border-color var(--motion-fade);
}

.schedule-row:hover[b-3jhzdbfdi8],
.schedule-row:focus-within[b-3jhzdbfdi8] {
	border-color: rgba(var(--glow), 0.4);
}

.schedule-time[b-3jhzdbfdi8] {
	flex: 0 0 auto;
	min-width: 5.5rem;
	padding: var(--space-3) var(--space-3);
	border-radius: 8px;
	background: var(--surface-2);
	font-family: var(--font-mono);
	font-size: var(--text-base);
	font-weight: 700;
	text-align: center;
	color: var(--accent);
}

.schedule-main[b-3jhzdbfdi8] {
	flex: 1 1 auto;
	min-width: 0;
}

.schedule-top[b-3jhzdbfdi8] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	min-width: 0;
}

.schedule-title[b-3jhzdbfdi8] {
	min-width: 0;
	font-size: var(--text-base);
	font-weight: 700;
	color: var(--text);
	text-decoration: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* the title's link covers the card, so the whole card opens the scene */
.schedule-title[b-3jhzdbfdi8]::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.schedule-title:hover[b-3jhzdbfdi8],
.schedule-title:focus-visible[b-3jhzdbfdi8] {
	text-decoration: underline;
}

.schedule-pitch[b-3jhzdbfdi8] {
	display: -webkit-box;
	margin: 6px 0 0;
	font-size: var(--text-sm);
	line-height: 1.45;
	color: var(--text-dim);
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	white-space: pre-line;
}

.schedule-meta[b-3jhzdbfdi8] {
	margin-top: 8px;
	font-size: var(--text-sm);
	color: var(--text-dim);
}
/* /Components/Scenes/StoryFoldRow.razor.rz.scp.css */
.story-fold[b-smqehgk6um] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	width: 100%;
	margin: 4px 0;
	padding: var(--space-3) var(--space-4);
	border: 1px dashed var(--border);
	border-radius: 10px;
	background: transparent;
	color: var(--text-dim);
	font: inherit;
	font-size: var(--text-sm);
	text-align: left;
	cursor: pointer;
}

.story-fold:hover[b-smqehgk6um] {
	color: var(--text);
	background: var(--surface-2);
}

.story-fold:focus-visible[b-smqehgk6um] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}
/* /Components/Scenes/StoryPose.razor.rz.scp.css */
/* Every row carries its type's tone as --pose-tone (unset for a type with none) and data-pose-type, so a staff
   stylesheet can restyle one type: [data-pose-type="radio"] { ... }. */
.story-row[b-cp6aqe0cxp] {
	padding: var(--space-3) 0;
}

.story-row--prose[b-cp6aqe0cxp] {
	display: flex;
	gap: var(--space-4);
}

.story-row--band[b-cp6aqe0cxp] {
	display: block;
}

/* Every band, OOC's included, is tinted by its type's tone over the surface, so a tone set on the type is the one
   the portal shows. The tile keeps the theme's own text on its raised surface. */
.story-row--band[b-cp6aqe0cxp] {
	--ooc-band-bg: color-mix(in srgb, var(--pose-tone, var(--text-dim)) 12%, var(--surface));
	--ooc-band-border: color-mix(in srgb, var(--pose-tone, var(--text-dim)) 45%, var(--border));
	--ooc-icon-bg: var(--surface-3);
	--ooc-icon-fg: var(--text);
}

.story-row--deleted[b-cp6aqe0cxp] {
	opacity: 0.55;
	text-decoration: line-through;
}

/* Beside the name, however long the pose runs. */
.story-portrait-btn[b-cp6aqe0cxp] {
	flex-shrink: 0;
	align-self: flex-start;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	border-radius: 12px;
}

.story-portrait-btn:focus-visible[b-cp6aqe0cxp],
.story-name:focus-visible[b-cp6aqe0cxp] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

[b-cp6aqe0cxp] .story-portrait {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	object-fit: cover;
	display: block;
}

[b-cp6aqe0cxp] .story-portrait--initials {
	display: grid;
	place-items: center;
	font-size: var(--text-sm);
	font-weight: 700;
}

.story-main[b-cp6aqe0cxp] {
	min-width: 0;
	flex: 1;
}

.story-head[b-cp6aqe0cxp] {
	display: flex;
	align-items: baseline;
	gap: var(--space-3);
	flex-wrap: wrap;
}

.story-name[b-cp6aqe0cxp] {
	font: inherit;
	font-size: var(--text-base);
	font-weight: 700;
	color: var(--text);
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	text-decoration: none;
}

.story-time[b-cp6aqe0cxp] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

/* An edited pose says so plainly: the accent, not a faint outline a reader skims past. */
.story-edited[b-cp6aqe0cxp] {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	font-size: var(--text-xs);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--accent);
	background: color-mix(in srgb, var(--accent) 14%, transparent);
	border-radius: 4px;
	padding: var(--space-1) var(--space-3);
}

/* Edit, on the viewer's own poses: always there (touch has no hover), brighter on the row in hand. */
.story-edit-btn[b-cp6aqe0cxp] {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	margin-left: auto;
	padding: var(--space-1) var(--space-3);
	border: 1px solid var(--border);
	border-radius: 8px;
	background: transparent;
	color: var(--text-dim);
	font: inherit;
	font-size: var(--text-sm);
	cursor: pointer;
}

.story-row:hover .story-edit-btn[b-cp6aqe0cxp] {
	border-color: var(--text-faint);
}

.story-edit-btn:hover[b-cp6aqe0cxp] {
	color: var(--text);
	background: var(--surface-2);
}

.story-edit-btn:focus-visible[b-cp6aqe0cxp],
.story-editor[b-cp6aqe0cxp]  .story-editor-input:focus-visible,
.story-editor-actions[b-cp6aqe0cxp]  .story-editor-tool:focus-visible,
.story-editor-save:focus-visible[b-cp6aqe0cxp],
.story-editor-cancel:focus-visible[b-cp6aqe0cxp] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.story-editor[b-cp6aqe0cxp] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	margin-top: 4px;
}

/* The field (FormattedInput) renders the textarea, so the rules reach it through ::deep. */
.story-editor[b-cp6aqe0cxp]  .story-editor-input {
	min-height: 96px;
	max-height: 50vh;
	field-sizing: content;
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--accent);
	border-radius: 10px;
	background: var(--surface-2);
	color: var(--text);
	font: inherit;
	font-size: var(--text-base);
	line-height: 1.6;
	resize: vertical;
}

.story-editor-actions[b-cp6aqe0cxp] {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: var(--space-3);
}

/* The format menu leads the row; Cancel and Save keep the end. */
.story-editor-actions[b-cp6aqe0cxp]  .story-editor-format {
	margin-right: auto;
}

.story-editor-actions[b-cp6aqe0cxp]  .story-editor-tool {
	width: 32px;
	height: 32px;
	display: grid;
	place-items: center;
	padding: 0;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: var(--text-dim);
	cursor: pointer;
}

.story-editor-actions[b-cp6aqe0cxp]  .story-editor-tool:hover,
.story-editor-actions[b-cp6aqe0cxp]  .story-editor-tool[aria-expanded="true"] {
	background: var(--surface-3);
	color: var(--text);
}

.story-editor-cancel[b-cp6aqe0cxp],
.story-editor-save[b-cp6aqe0cxp] {
	height: 32px;
	padding: 0 var(--space-5);
	border: 0;
	border-radius: 16px;
	font: inherit;
	font-size: var(--text-sm);
	font-weight: 600;
	cursor: pointer;
}

.story-editor-cancel[b-cp6aqe0cxp] {
	background: transparent;
	color: var(--text-dim);
}

.story-editor-save[b-cp6aqe0cxp] {
	background: var(--accent);
	color: var(--accent-on);
}

.story-editor-save:disabled[b-cp6aqe0cxp] {
	opacity: 0.45;
	cursor: default;
}

/* A pose edited while on screen glows for a moment, so a reader who already read it notices. */
.story-row--just-edited[b-cp6aqe0cxp] {
	/* A colour fading, not movement, so it stays under reduced motion. */
	animation: story-edited-flash-b-cp6aqe0cxp var(--duration-linger) var(--ease-standard);
}

@keyframes story-edited-flash-b-cp6aqe0cxp {
	0%, 30% {
		background: color-mix(in srgb, var(--accent) 16%, transparent);
	}
	100% {
		background: transparent;
	}
}

/* A pose keeps its line breaks and spacing (%r, %b): a multi-line pose is written that way on purpose. */
.story-body[b-cp6aqe0cxp] {
	font-size: var(--text-base);
	line-height: 1.6;
	color: var(--text);
	white-space: pre-wrap;
	overflow-wrap: anywhere;
}

.story-row--band .story-body[b-cp6aqe0cxp] {
	font-size: var(--text-base);
}

/* A prose type with a tone writes its words in it. */
.story-row--prose .story-body[b-cp6aqe0cxp] {
	color: var(--pose-tone, var(--text));
}

/* The icon is MudIcon's own element, out of this component's scope. */
.story-row[b-cp6aqe0cxp]  .story-type-icon {
	color: var(--pose-tone, var(--text-dim));
	flex-shrink: 0;
	align-self: center;
}

/* message: a bubble, headed by who sent it (and on what frequency); the reader's own sit on the right. */
.story-row--message[b-cp6aqe0cxp] {
	display: flex;
}

.story-bubble[b-cp6aqe0cxp] {
	max-width: min(85%, 640px);
	padding: var(--space-3) var(--space-4);
	border-radius: 14px 14px 14px 4px;
	background: color-mix(in srgb, var(--pose-tone, var(--accent)) 10%, var(--surface-2));
	border: 1px solid color-mix(in srgb, var(--pose-tone, var(--accent)) 35%, var(--border));
}

.story-row--mine[b-cp6aqe0cxp] {
	justify-content: flex-end;
}

.story-row--mine .story-bubble[b-cp6aqe0cxp] {
	border-radius: 14px 14px 4px 14px;
}

.story-bubble-from[b-cp6aqe0cxp] {
	font-size: var(--text-sm);
	font-weight: 700;
	color: var(--text);
}

.story-row--message .story-body[b-cp6aqe0cxp] {
	font-size: var(--text-base);
}

/* aside: a stage direction, no portrait: centred, italic, the name small beneath. */
.story-aside[b-cp6aqe0cxp] {
	max-width: 640px;
	margin: 0 auto;
	text-align: center;
}

.story-row--aside .story-body[b-cp6aqe0cxp] {
	font-style: italic;
	color: var(--pose-tone, var(--text));
}

.story-aside-meta[b-cp6aqe0cxp] {
	display: flex;
	justify-content: center;
	align-items: baseline;
	gap: var(--space-3);
	flex-wrap: wrap;
	margin-top: 2px;
}

.story-aside-name[b-cp6aqe0cxp] {
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--text-dim);
}

.story-row--aside .story-edit-btn[b-cp6aqe0cxp] {
	margin-left: 0;
}

/* notice: one dim line, the name, the text and the time running on. */
.story-row--notice[b-cp6aqe0cxp] {
	display: flex;
	align-items: baseline;
	gap: var(--space-3);
	padding: var(--space-2) 0;
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.story-row--notice .story-body[b-cp6aqe0cxp] {
	font-size: var(--text-sm);
	line-height: 1.5;
	color: var(--text-dim);
	min-width: 0;
}

.story-notice-name[b-cp6aqe0cxp] {
	font-weight: 600;
	flex-shrink: 0;
}

.story-row--notice .story-editor[b-cp6aqe0cxp] {
	flex: 1;
}

/* names in rendered pose HTML: the mention style (§4.8), which scoped CSS cannot reach from Mention.razor */
.story-body[b-cp6aqe0cxp]  a.mention {
	color: inherit;
	text-decoration: underline 1px color-mix(in srgb, var(--name, var(--text-faint)) var(--mention-alpha), transparent);
	text-underline-offset: var(--mention-offset);
}

.story-body[b-cp6aqe0cxp]  a.mention:hover {
	text-decoration-color: var(--name, var(--text-faint));
}

/* In a band the edited mark and the Edit follow the text. */
.story-row--band .story-edited[b-cp6aqe0cxp],
.story-row--band .story-edit-btn[b-cp6aqe0cxp] {
	margin-left: 8px;
	vertical-align: baseline;
}
/* /Components/Schema/SchemaDisplay.razor.rz.scp.css */
.schema-label[b-1y5c1weezr] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.schema-value[b-1y5c1weezr] {
	font-size: var(--text-base);
	color: var(--text);
	overflow-wrap: anywhere;
}

/* A markdown element's HTML is built by the renderer, not this component, so its links need ::deep. */
.schema-markdown[b-1y5c1weezr]  a {
	color: var(--accent);
}

.schema-image[b-1y5c1weezr] {
	display: block;
	max-width: 100%;
	height: auto;
	border-radius: 10px;
}

.schema-kv[b-1y5c1weezr] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
	gap: var(--space-5) var(--space-5);
	margin: 0;
}

.schema-kv-row[b-1y5c1weezr] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	min-width: 0;
}

.schema-kv-row dd[b-1y5c1weezr] {
	margin: 0;
}

.schema-link[b-1y5c1weezr] {
	color: var(--accent);
	text-decoration: none;
}

.schema-link:hover[b-1y5c1weezr] {
	text-decoration: underline;
}

.schema-timeline[b-1y5c1weezr] {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	min-width: 0;
}

.schema-timeline-entry[b-1y5c1weezr] {
	border-left: 2px solid var(--border);
	padding: var(--space-1) 0 var(--space-1) var(--space-4);
	min-width: 0;
}

.schema-timeline-head[b-1y5c1weezr] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2) var(--space-4);
	margin-bottom: 4px;
}

.schema-timeline-author[b-1y5c1weezr] {
	font-size: var(--text-base);
	font-weight: 600;
	color: var(--text);
}

.schema-timeline-time[b-1y5c1weezr] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.schema-timeline-body[b-1y5c1weezr] {
	font-size: var(--text-base);
	color: var(--text);
	overflow-wrap: anywhere;
}

.schema-timeline-code[b-1y5c1weezr] {
	margin: 0;
	padding: var(--space-3) var(--space-4);
	background: var(--surface-2);
	border-radius: 6px;
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	white-space: pre-wrap;
}

.schema-timeline-actions[b-1y5c1weezr] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2);
	margin-top: 2px;
}

/* A link beside the action buttons, the size of their text. */
.schema-timeline-link[b-1y5c1weezr] {
	padding: 0 var(--space-3);
	font-size: var(--text-sm);
}

/* A conversation: rows sharing a group read as one thread, the first at the margin and its replies
   indented once behind a thread line; a new conversation starts below a rule. */
.schema-timeline-entry--grouped[b-1y5c1weezr] {
	border-left: 0;
	padding-left: 0;
}

.schema-timeline-entry--reply[b-1y5c1weezr] {
	margin-left: 22px;
	padding-left: var(--space-4);
	border-left: 2px solid var(--border);
}

.schema-timeline-entry--starts[b-1y5c1weezr] {
	border-top: 1px solid var(--border);
	padding-top: var(--space-4);
}

.schema-timeline-entry--unread.schema-timeline-entry--reply[b-1y5c1weezr],
.schema-timeline-entry--unread:not(.schema-timeline-entry--grouped)[b-1y5c1weezr] {
	border-left-color: var(--accent);
}

.schema-timeline-replyto[b-1y5c1weezr] {
	font-size: var(--text-xs);
	color: var(--text-dim);
	background: var(--surface-2);
	border-radius: 4px;
	padding: var(--space-1) var(--space-3);
}

.schema-timeline-new[b-1y5c1weezr] {
	font-size: var(--text-xs);
	font-weight: 600;
	color: var(--accent-on);
	background: var(--accent);
	border-radius: 8px;
	padding: 0 var(--space-3);
}

.schema-timeline-more[b-1y5c1weezr] {
	display: inline-block;
	margin-top: 4px;
	font-size: var(--text-sm);
}

.schema-markup[b-1y5c1weezr] {
	font-family: var(--font-mono);
	white-space: pre-wrap;
}

/* a table's row groups (Pinned, Newest) and the rows staff may put in order */
.schema-table-group th[b-1y5c1weezr] {
	font-size: var(--text-xs);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--text-dim);
	text-align: left;
}

.schema-table-row--reorder[b-1y5c1weezr] {
	cursor: grab;
}

.schema-table-row--dragging[b-1y5c1weezr] {
	opacity: 0.5;
}

.schema-table-move[b-1y5c1weezr] {
	white-space: nowrap;
	width: 1%;
}

/* Stat tiles: a large value under a small label, its tone from the row's colour. */
.schema-stats[b-1y5c1weezr] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
	gap: var(--space-4);
}

.schema-stat[b-1y5c1weezr] {
	--stat-tone: var(--text-faint);
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	min-width: 0;
	padding: var(--space-4) var(--space-4);
	border: 1px solid var(--border);
	border-top: 3px solid var(--stat-tone);
	border-radius: 10px;
	background: var(--surface-2);
}

.schema-stat[data-tone="primary"][b-1y5c1weezr] { --stat-tone: var(--accent); }
.schema-stat[data-tone="secondary"][b-1y5c1weezr] { --stat-tone: var(--accent-2); }
.schema-stat[data-tone="tertiary"][b-1y5c1weezr] { --stat-tone: var(--tone-tertiary); }
.schema-stat[data-tone="info"][b-1y5c1weezr] { --stat-tone: var(--info); }
.schema-stat[data-tone="success"][b-1y5c1weezr] { --stat-tone: var(--success); }
.schema-stat[data-tone="warning"][b-1y5c1weezr] { --stat-tone: var(--warn); }
.schema-stat[data-tone="error"][b-1y5c1weezr] { --stat-tone: var(--danger); }

.schema-stat-value[b-1y5c1weezr] {
	font-size: var(--text-xl);
	font-weight: 600;
	line-height: 1.1;
	color: var(--text);
	font-variant-numeric: tabular-nums;
	overflow-wrap: anywhere;
}

.schema-stat-caption[b-1y5c1weezr] {
	font-size: var(--text-sm);
	color: var(--text-faint);
	overflow-wrap: anywhere;
}

.schema-stat-pips[b-1y5c1weezr] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
}

.schema-stat-pip[b-1y5c1weezr] {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	border: 1px solid var(--stat-tone);
}

.schema-stat-pip--on[b-1y5c1weezr] {
	background: var(--stat-tone);
}

.schema-chip-group[b-1y5c1weezr] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	min-width: 0;
}

.schema-chips[b-1y5c1weezr] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
}

.schema-chips[b-1y5c1weezr]  .schema-chip {
	margin: 0;
}

/* A value a click runs something on: a command, or a dialog of choices. */
.schema-click[b-1y5c1weezr] {
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	color: var(--accent);
	text-align: inherit;
	cursor: pointer;
}

.schema-click:hover:not(:disabled)[b-1y5c1weezr],
.schema-click:focus-visible[b-1y5c1weezr] {
	text-decoration: underline;
}

.schema-click:disabled[b-1y5c1weezr] {
	color: var(--text-dim);
	cursor: default;
}

.schema-stat--click[b-1y5c1weezr] {
	cursor: pointer;
}

.schema-stat--click:hover[b-1y5c1weezr],
.schema-stat--click:focus-visible[b-1y5c1weezr] {
	outline: 1px solid var(--accent);
	outline-offset: -1px;
}

.schema-stat--click[aria-disabled="true"][b-1y5c1weezr] {
	cursor: default;
}

.schema-click-output[b-1y5c1weezr] {
	margin: 4px 0 8px;
	padding: var(--space-3) var(--space-4);
	background: var(--surface-2);
	border-radius: 6px;
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	white-space: pre-wrap;
	overflow-wrap: anywhere;
}
/* /Components/Schema/SchemaFieldInput.razor.rz.scp.css */
.schema-rows-list[b-r9mqj9z62x] {
	list-style: none;
	margin: 4px 0;
	padding: 0;
	display: grid;
	gap: var(--space-3);
}

.schema-row[b-r9mqj9z62x] {
	display: grid;
	gap: 0;
	padding: 0 var(--space-2) 0 var(--space-3);
	border: 1px solid var(--border);
	border-radius: 6px;
}

.schema-row-fields[b-r9mqj9z62x] {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 0 var(--space-3);
	min-width: 0;
}

.schema-row-tools[b-r9mqj9z62x] {
	order: -1;
	display: flex;
	justify-content: flex-end;
}
/* /Components/Schema/SchemaGraph.razor.rz.scp.css */
.schema-graph[b-dryqgjdqge] {
	position: relative;
	margin: 0 auto;
	max-width: 34rem;
}

.schema-graph-svg[b-dryqgjdqge] {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

.schema-graph-edge[b-dryqgjdqge] {
	stroke: var(--border);
	stroke-width: 2;
}

.schema-graph-arrow[b-dryqgjdqge] {
	fill: var(--border);
}

.schema-graph-edge-label[b-dryqgjdqge] {
	font-family: var(--font-ui);
	font-size: var(--text-sm);
	fill: var(--text-dim);
	text-anchor: middle;
	dominant-baseline: central;
	paint-order: stroke;
	stroke: var(--card-bg, var(--bg));
	stroke-width: 4px;
	stroke-linejoin: round;
}

.schema-graph-disc[b-dryqgjdqge] {
	fill: var(--accent);
	stroke: var(--border);
	stroke-width: 2;
}

.schema-graph-node--focus .schema-graph-disc[b-dryqgjdqge] {
	stroke: var(--text);
	stroke-width: 3;
}

.schema-graph-initial[b-dryqgjdqge] {
	font-family: var(--font-display);
	font-size: var(--text-lg);
	fill: var(--accent-on);
	text-anchor: middle;
	dominant-baseline: central;
}

.schema-graph-name[b-dryqgjdqge] {
	font-family: var(--font-ui);
	font-size: var(--text-sm);
	fill: var(--text);
	text-anchor: middle;
	dominant-baseline: hanging;
	paint-order: stroke;
	stroke: var(--card-bg, var(--bg));
	stroke-width: 4px;
	stroke-linejoin: round;
}

.schema-graph-name--above[b-dryqgjdqge] {
	dominant-baseline: auto;
}

.schema-graph-node--focus .schema-graph-name[b-dryqgjdqge] {
	font-weight: 600;
}

.schema-graph-links[b-dryqgjdqge] {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.schema-graph-hit[b-dryqgjdqge] {
	position: absolute;
	aspect-ratio: 1;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	pointer-events: auto;
}

.schema-graph-hit:hover[b-dryqgjdqge],
.schema-graph-hit:focus-visible[b-dryqgjdqge] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}
/* /Components/Schema/SchemaGraphEditor.razor.rz.scp.css */
.graph-editor[b-r4u2k7f0cn] {
	--graph-node-width: 172px;
	--graph-node-height: 68px;
	display: grid;
	gap: 0;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--surface);
	overflow: hidden;
}

.graph-toolbar[b-r4u2k7f0cn] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3);
	padding: var(--space-3) var(--space-4);
	border-bottom: 1px solid var(--border);
}

.graph-toolbar-spacer[b-r4u2k7f0cn] {
	flex: 1;
}

.graph-views[b-r4u2k7f0cn] {
	display: inline-flex;
	gap: var(--space-1);
	padding: var(--space-1);
	border-radius: 6px;
	background: var(--surface-2);
}

.graph-view-button[b-r4u2k7f0cn] {
	font: 600 var(--text-sm) var(--font-ui);
	padding: var(--space-2) var(--space-4);
	border: 0;
	border-radius: 4px;
	background: transparent;
	color: var(--text-dim);
	cursor: pointer;
	transition: background-color var(--motion-fade), color var(--motion-fade);
}

.graph-view-button[aria-pressed="true"][b-r4u2k7f0cn] {
	background: var(--surface);
	color: var(--text);
}

.graph-add[b-r4u2k7f0cn] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
}

[b-r4u2k7f0cn] .graph-add-button {
	border-color: var(--graph-tone, var(--border));
}

/* The editor is a workspace of its own: the map fills it and the step scrolls beside it. */
.graph-body[b-r4u2k7f0cn] {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	height: min(78vh, 880px);
}

.graph-main[b-r4u2k7f0cn] {
	min-width: 0;
	display: grid;
	align-content: start;
	overflow: auto;
	grid-template-rows: minmax(0, 1fr);
}

.graph-main:has(.graph-guidance)[b-r4u2k7f0cn] {
	grid-template-rows: minmax(0, 1fr) auto;
}

.graph-inspector[b-r4u2k7f0cn] {
	overflow-y: auto;
	border-left: 1px solid var(--border);
	padding: var(--space-4);
	display: grid;
	gap: var(--space-3);
	align-content: start;
	min-width: 0;
}

.graph-inspector-fields[b-r4u2k7f0cn] {
	border: 0;
	padding: 0;
	margin: 0;
	min-width: 0;
}

.graph-inspector-head[b-r4u2k7f0cn] {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
}

.graph-inspector-kind[b-r4u2k7f0cn],
.graph-node-kind[b-r4u2k7f0cn],
.graph-outline-kind[b-r4u2k7f0cn] {
	font: 600 var(--text-xs) var(--font-kicker);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--graph-tone, var(--text-dim));
}

.graph-heading[b-r4u2k7f0cn] {
	font-size: var(--text-sm);
	font-weight: 600;
	margin: 8px 0 4px;
}

/* The map: steps over the lines that join them, on a dotted ground that scrolls both ways. */
.graph-map[b-r4u2k7f0cn] {
	overflow: auto;
	height: 100%;
	background:
		radial-gradient(circle, var(--border) 1px, transparent 1.2px) 0 0 / 22px 22px,
		var(--surface-3);
}

.graph-canvas[b-r4u2k7f0cn] {
	position: relative;
}

.graph-lines[b-r4u2k7f0cn] {
	position: absolute;
	inset: 0;
	overflow: visible;
}

.graph-line[b-r4u2k7f0cn] {
	fill: none;
	stroke: var(--text-dim);
	stroke-width: 2;
}

.graph-arrow[b-r4u2k7f0cn] {
	fill: var(--text-dim);
}

.graph-line-label[b-r4u2k7f0cn] {
	font: 600 var(--text-xs) var(--font-mono);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-anchor: middle;
	dominant-baseline: central;
	fill: var(--text-dim);
	paint-order: stroke;
	stroke: var(--surface-3);
	stroke-width: 5px;
	stroke-linejoin: round;
}

.graph-node[b-r4u2k7f0cn] {
	position: absolute;
	width: var(--graph-node-width);
	height: var(--graph-node-height);
	box-sizing: border-box;
	display: grid;
	align-content: start;
	justify-items: start;
	gap: var(--space-1);
	padding: var(--space-3) var(--space-4);
	text-align: start;
	font: inherit;
	color: var(--text);
	background: var(--surface);
	border: 1px solid var(--border);
	border-top: 3px solid var(--graph-tone, var(--text-dim));
	border-radius: 8px;
	cursor: pointer;
	user-select: none;
	transition: border-color var(--motion-fade), box-shadow var(--motion-fade);
}

.graph-node--movable[b-r4u2k7f0cn] {
	cursor: grab;
	touch-action: none;
}

.graph-node--selected[b-r4u2k7f0cn] {
	border-color: var(--accent);
	box-shadow: 0 0 0 1px var(--accent);
}

.graph-node--added[b-r4u2k7f0cn] {
	box-shadow: 0 0 0 2px var(--success);
}

.graph-node--changed[b-r4u2k7f0cn] {
	box-shadow: 0 0 0 2px var(--warn);
}

.graph-node:focus-visible[b-r4u2k7f0cn],
.graph-outline-head:focus-visible[b-r4u2k7f0cn],
.graph-view-button:focus-visible[b-r4u2k7f0cn],
.graph-link:focus-visible[b-r4u2k7f0cn] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.graph-node-kind[b-r4u2k7f0cn] {
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.graph-origin[b-r4u2k7f0cn] {
	position: absolute;
	inset: 0;
}

.graph-entry[b-r4u2k7f0cn] {
	position: absolute;
	width: 96px;
	height: 36px;
	box-sizing: border-box;
	border: 2px solid var(--accent);
	border-radius: 18px;
	background: var(--surface);
	color: var(--accent);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	touch-action: none;
}

.graph-entry.graph-node--selected[b-r4u2k7f0cn] {
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 35%, transparent);
}

.graph-line--entry[b-r4u2k7f0cn] {
	stroke: var(--accent);
}

.graph-node-label[b-r4u2k7f0cn] {
	font-weight: 600;
	font-size: var(--text-sm);
	line-height: 1.3;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.graph-badge[b-r4u2k7f0cn] {
	position: absolute;
	top: -9px;
	right: -7px;
	min-width: 18px;
	height: 18px;
	padding: 0 var(--space-2);
	box-sizing: border-box;
	border-radius: 9px;
	font: 700 var(--text-xs)/18px var(--font-mono);
	text-align: center;
	color: var(--bg);
}

.graph-badge--issue[b-r4u2k7f0cn] {
	background: var(--warn);
}

.graph-badge--note[b-r4u2k7f0cn] {
	background: var(--accent);
}

.graph-badge--inline[b-r4u2k7f0cn] {
	position: static;
	height: auto;
	line-height: 1.5;
}

/* The outline: the same graph as a list, in reading order. */
.graph-outline[b-r4u2k7f0cn] {
	list-style: none;
	margin: 0;
	padding: 0;
}

.graph-editor--map .graph-outline[b-r4u2k7f0cn] {
	display: none;
}

.graph-outline-step[b-r4u2k7f0cn] {
	border-bottom: 1px solid var(--border);
	border-left: 3px solid var(--graph-tone, var(--text-dim));
	padding: var(--space-3) var(--space-4);
}

.graph-outline-step--selected[b-r4u2k7f0cn] {
	background: var(--surface-2);
}

.graph-outline-head[b-r4u2k7f0cn] {
	all: unset;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--space-3);
	cursor: pointer;
	width: 100%;
}

.graph-outline-label[b-r4u2k7f0cn] {
	font-weight: 600;
}

.graph-outline-ports li[b-r4u2k7f0cn] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	align-items: baseline;
}

.graph-outline-ports[b-r4u2k7f0cn] {
	list-style: none;
	margin: 4px 0 0;
	padding: 0;
	display: grid;
	gap: var(--space-1);
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.graph-port[b-r4u2k7f0cn] {
	font: 600 var(--text-xs) var(--font-mono);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.graph-nowhere[b-r4u2k7f0cn] {
	color: var(--warn);
}

.graph-change[b-r4u2k7f0cn] {
	font-size: var(--text-sm);
	margin: 0;
}

.graph-change--added[b-r4u2k7f0cn] {
	color: var(--success);
}

.graph-change--changed[b-r4u2k7f0cn] {
	color: var(--warn);
}

/* Guidance, under the map and on the selected step. */
.graph-guidance[b-r4u2k7f0cn] {
	border-top: 1px solid var(--border);
	padding: var(--space-4) var(--space-4);
}

.graph-guidance ul[b-r4u2k7f0cn],
ul.graph-guidance[b-r4u2k7f0cn] {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--space-2);
}

ul.graph-guidance--step[b-r4u2k7f0cn] {
	border-top: 0;
	padding: 0;
}

.graph-issue[b-r4u2k7f0cn] {
	display: grid;
	grid-template-columns: 14px minmax(0, 1fr);
	gap: var(--space-3);
	font-size: var(--text-sm);
}

.graph-issue-mark[b-r4u2k7f0cn] {
	font: 700 var(--text-sm) var(--font-mono);
	text-align: center;
}

.graph-issue--error .graph-issue-mark[b-r4u2k7f0cn] {
	color: var(--danger);
}

.graph-issue--warning .graph-issue-mark[b-r4u2k7f0cn] {
	color: var(--warn);
}

.graph-issue--hint .graph-issue-mark[b-r4u2k7f0cn] {
	color: var(--text-dim);
}

.graph-link[b-r4u2k7f0cn] {
	all: unset;
	cursor: pointer;
	text-decoration: underline;
	text-decoration-color: var(--border);
	text-underline-offset: 3px;
}

.graph-note[b-r4u2k7f0cn] {
	display: grid;
	gap: var(--space-1);
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--border);
	border-radius: 6px;
	background: var(--surface-2);
	font-size: var(--text-sm);
}

.graph-note-author[b-r4u2k7f0cn] {
	font: var(--text-xs) var(--font-mono);
	color: var(--text-faint);
}

/* Below a tablet the inspector goes under the map; on a phone the outline stands in for the map. */
@container page (max-width: 64rem) {
	.graph-body[b-r4u2k7f0cn] {
		grid-template-columns: minmax(0, 1fr);
		height: auto;
	}

	.graph-main[b-r4u2k7f0cn] {
		overflow: visible;
		grid-template-rows: none;
	}

	.graph-main:has(.graph-guidance)[b-r4u2k7f0cn] {
		grid-template-rows: none;
	}

	.graph-map[b-r4u2k7f0cn] {
		height: auto;
		max-height: 70vh;
	}

	.graph-inspector[b-r4u2k7f0cn] {
		overflow-y: visible;
		border-left: 0;
		border-top: 1px solid var(--border);
	}
}

@container page (max-width: 48rem) {
	.graph-views[b-r4u2k7f0cn],
	.graph-map[b-r4u2k7f0cn],
	[b-r4u2k7f0cn] .graph-tidy {
		display: none;
	}

	.graph-editor--map .graph-outline[b-r4u2k7f0cn] {
		display: block;
	}
}

/* An outcome that may lead to several steps. */
.graph-pool[b-r4u2k7f0cn] {
	display: grid;
	gap: var(--space-2);
	margin-bottom: 8px;
}

.graph-pool-port[b-r4u2k7f0cn] {
	color: var(--graph-tone, var(--text-dim));
}

.graph-pool-list[b-r4u2k7f0cn] {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--space-2);
}

.graph-pool-row[b-r4u2k7f0cn] {
	display: grid;
	gap: var(--space-2);
	padding: var(--space-2) var(--space-2) 0 var(--space-3);
	border-left: 2px solid var(--graph-tone, var(--border));
	font-size: var(--text-sm);
}

.graph-pool-head[b-r4u2k7f0cn] {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: var(--space-3);
}

.graph-edge-fields[b-r4u2k7f0cn] {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 0 var(--space-3);
}

.graph-pool-label[b-r4u2k7f0cn] {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* The map scales inside a frame sized to the scaled canvas, so its scrollbars follow the zoom. */
.graph-frame[b-r4u2k7f0cn] {
	position: relative;
}

.graph-frame > .graph-canvas[b-r4u2k7f0cn] {
	transform-origin: 0 0;
}

.graph-zoom[b-r4u2k7f0cn] {
	display: inline-flex;
	align-items: center;
	gap: 0;
}

.graph-zoom-level[b-r4u2k7f0cn] {
	min-width: 44px;
	padding: var(--space-1) var(--space-2);
	border: 0;
	background: transparent;
	color: var(--text-dim);
	font: 600 var(--text-sm) var(--font-mono);
	cursor: pointer;
}

.graph-zoom-level:focus-visible[b-r4u2k7f0cn] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

/* An outcome a step must have that leads nowhere yet. */
.graph-stub[b-r4u2k7f0cn] {
	fill: none;
	stroke: var(--text-dim);
	stroke-width: 2;
	stroke-dasharray: 3 3;
}

.graph-stub-end[b-r4u2k7f0cn] {
	fill: var(--surface-3);
	stroke: var(--text-dim);
	stroke-width: 2;
}

.graph-line--pending[b-r4u2k7f0cn] {
	stroke: var(--accent);
	stroke-dasharray: 6 4;
}

/* The selected step's outcomes: drag one onto another step to link it. */
.graph-handles[b-r4u2k7f0cn] {
	position: absolute;
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	width: calc(var(--graph-node-width) * 1.6);
}

.graph-handle[b-r4u2k7f0cn] {
	padding: var(--space-1) var(--space-3);
	border: 1px dashed var(--graph-tone, var(--text-dim));
	border-radius: 999px;
	background: var(--surface);
	color: var(--graph-tone, var(--text-dim));
	font: 600 var(--text-xs) var(--font-mono);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: crosshair;
	touch-action: none;
	user-select: none;
}

.graph-handle--linked[b-r4u2k7f0cn] {
	border-style: solid;
}
/* /Components/Schema/SchemaViewRenderer.razor.rz.scp.css */
.schema-view[b-mb22od49ar] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	min-width: 0;
}

/* a main card leaves its body's padding to the content; a schema section's fields sit 16px in */
.schema-view[b-mb22od49ar]  .schema-section .kit-card-body {
	padding: var(--space-5) var(--space-5) var(--space-5);
}

.schema-title[b-mb22od49ar] {
	margin: 0;
	font-size: var(--text-lg);
	font-weight: 700;
	color: var(--text);
}

.schema-page-title[b-mb22od49ar] {
	margin: 4px 0 0;
	font-size: var(--text-base);
	font-weight: 700;
	color: var(--text);
}

.schema-grid[b-mb22od49ar] {
	display: grid;
	gap: var(--space-5) var(--space-5);
	min-width: 0;
}

/* undeclared columns: as many ~10rem columns as fit (four in a profile's main column) */
.schema-grid--auto[b-mb22od49ar] {
	grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
}

.schema-grid--cols[b-mb22od49ar] {
	grid-template-columns: repeat(var(--schema-cols), minmax(0, 1fr));
}

.schema-cell[b-mb22od49ar] {
	min-width: 0;
	grid-column: span var(--schema-span, 1);
}

.schema-cell--wide[b-mb22od49ar] {
	grid-column: 1 / -1;
}

/* a run of buttons: one row that wraps */
.schema-button-row[b-mb22od49ar] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
}

.schema-field[b-mb22od49ar] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	min-width: 0;
}

.schema-label[b-mb22od49ar] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.schema-value[b-mb22od49ar] {
	font-size: var(--text-base);
	color: var(--text);
	overflow-wrap: anywhere;
}

@container page (max-width: 48rem) {
	.schema-grid--cols[b-mb22od49ar] {
		grid-template-columns: minmax(0, 1fr);
	}

	.schema-cell[b-mb22od49ar] {
		grid-column: auto;
	}

	.schema-cell--wide[b-mb22od49ar] {
		grid-column: 1 / -1;
	}
}
/* /Components/Settings/AccountSignInMethods.razor.rz.scp.css */
.signin-methods[b-byeeqz4xoi] { padding: var(--space-6); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); overflow-wrap: anywhere; }
.signin-methods p[b-byeeqz4xoi] { max-width: 65ch; margin: 0; line-height: 1.6; }
.signin-method[b-byeeqz4xoi] { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; width: 100%; gap: var(--space-4); }
@container page (max-width: 48rem) { .signin-methods[b-byeeqz4xoi] { padding: var(--space-5); align-items: stretch; } }
.signin-provider[b-byeeqz4xoi] { width: 100%; display: flex; flex-direction: column; gap: var(--space-2); padding-bottom: var(--space-3); border-bottom: 1px solid var(--border); }
.signin-provider-name[b-byeeqz4xoi] { display: inline-flex; align-items: center; gap: var(--space-3); font-weight: 600; }
.signin-identity[b-byeeqz4xoi] { padding-left: var(--space-7); color: var(--text-secondary); }
/* /Components/Settings/ExternalSignInButtons.razor.rz.scp.css */
.external-signin[b-if39cmgc7w] { display: grid; gap: var(--space-4); margin-top: 1rem; }
.external-signin-divider[b-if39cmgc7w] { display: flex; align-items: center; gap: var(--space-4); color: var(--text-faint); font-size: var(--text-sm); }
.external-signin-divider[b-if39cmgc7w]::before, .external-signin-divider[b-if39cmgc7w]::after { content: ""; flex: 1; border-top: 1px solid var(--border); }
.external-signin-button[b-if39cmgc7w] { display: flex; align-items: center; justify-content: center; gap: var(--space-3); min-height: 2.75rem; padding: var(--space-3) var(--space-5); border: 1px solid var(--border); border-radius: var(--radius-sm, 6px); color: var(--text-primary); background: var(--surface-1); font: inherit; cursor: pointer; overflow-wrap: anywhere; }
.external-signin-button:hover:not(:disabled)[b-if39cmgc7w] { border-color: var(--text-faint); }
.external-signin-button:focus-visible[b-if39cmgc7w] { outline: 2px solid var(--accent); outline-offset: 3px; }
.external-signin-button:disabled[b-if39cmgc7w] { opacity: .6; cursor: wait; }
.external-signin-last[b-if39cmgc7w] { padding: var(--space-1) var(--space-3); border-radius: 999px; background: var(--surface-2, var(--surface-1)); border: 1px solid var(--border); color: var(--text-faint); font-size: var(--text-sm); }
.external-signin-row[b-if39cmgc7w] { display: grid; grid-template-columns: repeat(auto-fit, minmax(2.75rem, 1fr)); gap: var(--space-3); }
.external-signin-button--icon[b-if39cmgc7w] { padding: var(--space-3); }
.external-signin-button--icon[b-if39cmgc7w]  .provider-logo { width: 1.375rem; height: 1.375rem; }
/* /Components/Settings/NativeCharacterCredentialsPanel.razor.rz.scp.css */
.acct-section[b-pzcnw3j3a1] {
    min-width: 0;
}

code[b-pzcnw3j3a1] {
    overflow-wrap: anywhere;
    white-space: normal;
}
/* /Components/Settings/ProviderLogo.razor.rz.scp.css */
.provider-logo[b-d0ihqeclf6] { width: 1.25rem; height: 1.25rem; flex: none; }
/* /Components/Settings/RecentAccountProofPrompt.razor.rz.scp.css */
.recent-proof[b-1nmqfntemo] { display: grid; gap: var(--space-4); max-width: 38rem; }
.recent-proof p[b-1nmqfntemo] { margin: 0; line-height: 1.6; }
/* /Components/Softcode/CollapsiblePane.razor.rz.scp.css */
/* The pane's header: its title and controls, then the chevron that folds it. */
.sc-pane-head[b-sotjyh1h2s] {
    display: flex;
    align-items: center;
    padding: var(--space-4) var(--space-4) var(--space-3);
    gap: var(--space-3);
    flex-shrink: 0;
}

.sc-pane-head--ruled[b-sotjyh1h2s] {
    padding: var(--space-3) var(--space-3) var(--space-3);
    border-bottom: 1px solid var(--border-soft);
}

/* Folded: the pane's icon and its selection, down a narrow rail. */
.sc-pane-rail[b-sotjyh1h2s] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--space-4) 0;
    gap: var(--space-3);
}
/* /Components/Softcode/SoftcodeAttributeTreeView.razor.rz.scp.css */
/* ── Attribute list item: kind badge + name + preview ── */
.sc-attr-item[b-nhob29sqbk] {
    width: 100%;
    text-align: left;
    display: block;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius);
    cursor: pointer;
    border: none;
    background: transparent;
    margin-bottom: 1px;
    transition: background var(--motion-fade);
}
.sc-attr-item:hover[b-nhob29sqbk] {
    background: var(--surface-2);
}
.sc-attr-item--on[b-nhob29sqbk] {
    background: rgba(var(--glow), 0.10);
    box-shadow: inset 2px 0 0 var(--accent);
}
.sc-attr-row1[b-nhob29sqbk] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}
.sc-attr-name[b-nhob29sqbk] {
    flex: 1;
    min-width: 0;
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--text-dim);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sc-attr-item--on .sc-attr-name[b-nhob29sqbk] {
    color: var(--text);
    font-weight: 600;
}

/* ── Attribute tree: one row per attribute, indented by its depth under FOO`BAR`… ── */
.sc-tree-row[b-nhob29sqbk] {
    --sc-toggle: 20px;
    --sc-indent: 0.75rem;
    display: flex;
    align-items: center;
    gap: var(--space-1);
    padding-left: calc(var(--sc-depth, 0) * var(--sc-indent));
}
/* A faint guide marks the branch a nested row belongs to. */
.sc-tree-row--nested[b-nhob29sqbk] {
    background-image: linear-gradient(var(--border-soft), var(--border-soft));
    background-size: 1px 100%;
    /* Under the centre of the parent's fold control. */
    background-position: calc((var(--sc-depth, 0) - 1) * var(--sc-indent) + var(--sc-toggle) / 2) 0;
    background-repeat: no-repeat;
}
.sc-tree-row .sc-attr-item[b-nhob29sqbk] {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
}
.sc-tree-row .sc-attr-row1[b-nhob29sqbk] {
    flex: 1;
    min-width: 0;
}
.sc-tree-toggle[b-nhob29sqbk],
.sc-tree-spacer[b-nhob29sqbk] {
    display: grid;
    place-items: center;
    width: var(--sc-toggle);
    height: var(--sc-toggle);
    flex-shrink: 0;
}
.sc-tree-toggle[b-nhob29sqbk] {
    border: none;
    border-radius: 5px;
    background: transparent;
    color: var(--text-faint);
    cursor: pointer;
    padding: 0;
}
.sc-tree-toggle:hover:not(:disabled)[b-nhob29sqbk] {
    color: var(--text);
    background: var(--surface-2);
}
.sc-tree-toggle:disabled[b-nhob29sqbk] {
    cursor: default;
}
.sc-tree-count[b-nhob29sqbk] {
    flex-shrink: 0;
    padding: 0 var(--space-2);
    border-radius: 999px;
    background: var(--surface-2);
    color: var(--text-faint);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    line-height: 1rem;
}
.sc-attr-item--bare:disabled[b-nhob29sqbk] {
    cursor: default;
}
/* Nothing to list: no attributes, or none matching the filter. */
/* Mobile: rows a finger can hit. */
@container page (max-width: 48rem) {
    /* Finger-sized fold controls; the tree rows themselves already are. */
    .sc-tree-row[b-nhob29sqbk] {
        --sc-toggle: 32px;
        --sc-indent: 1.25rem;
    }
    /* One line per attribute is too short a target for a finger. */
    .sc-tree-row .sc-attr-item[b-nhob29sqbk] {
        min-height: 2.5rem;
    }
}
/* /Components/Softcode/SoftcodeConsolePanel.razor.rz.scp.css */
/* ── Console: arguments, scrollback and an input line under the editor ── */
.sc-console[b-4b0aytcpk9] {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    /* Room for a few runs without taking the editor's height; the scrollback scrolls. */
    max-height: 40%;
    min-height: 140px;
    border-top: 1px solid var(--border-soft);
    background: var(--code-bg);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
}
.sc-console-head[b-4b0aytcpk9] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-width: 0;
    padding: var(--space-1) var(--space-3) var(--space-1) var(--space-5);
    border-bottom: 1px solid var(--border-soft);
    background: var(--surface-3);
}
.sc-console-title[b-4b0aytcpk9] {
    flex-shrink: 0;
    font-family: var(--font-ui);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-dim);
}
.sc-console-hint[b-4b0aytcpk9] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--font-ui);
    font-size: var(--text-xs);
    color: var(--text-faint);
}
.sc-console-args[b-4b0aytcpk9] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2) var(--space-3);
    padding: var(--space-2) var(--space-5);
    border-bottom: 1px solid var(--border-soft);
}
.sc-console-arg[b-4b0aytcpk9] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}
.sc-console-arg-name[b-4b0aytcpk9] {
    color: var(--accent);
}
.sc-console-arg-input[b-4b0aytcpk9] {
    width: 7rem;
    padding: var(--space-1) var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: transparent;
    color: var(--text);
    font: inherit;
    outline: none;
}
.sc-console-arg-input:focus[b-4b0aytcpk9] {
    border-color: var(--accent);
}
.sc-console-argbtn[b-4b0aytcpk9] {
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: transparent;
    color: var(--text-dim);
    cursor: pointer;
}
.sc-console-argbtn:hover[b-4b0aytcpk9] {
    color: var(--text);
    border-color: var(--accent);
}
.sc-console-log[b-4b0aytcpk9] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: var(--space-2) var(--space-5);
}
.sc-console-entry[b-4b0aytcpk9] {
    padding: var(--space-2) 0;
    border-bottom: 1px dashed var(--border-soft);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}
.sc-console-entry:last-child[b-4b0aytcpk9] {
    border-bottom: none;
}
.sc-console-src[b-4b0aytcpk9] {
    display: flex;
    gap: var(--space-3);
    align-items: baseline;
    color: var(--text);
}
.sc-console-sigil[b-4b0aytcpk9] {
    flex-shrink: 0;
    color: var(--accent);
}
.sc-console-code[b-4b0aytcpk9] {
    min-width: 0;
}
.sc-console-unsaved[b-4b0aytcpk9] {
    flex-shrink: 0;
    font-family: var(--font-ui);
    font-size: var(--text-xs);
    color: var(--warn);
}
.sc-console-argline[b-4b0aytcpk9] {
    color: var(--text-faint);
}
.sc-console-out[b-4b0aytcpk9] {
    color: var(--text-dim);
}
.sc-console-result[b-4b0aytcpk9] {
    color: var(--success);
}
.sc-console-error[b-4b0aytcpk9] {
    color: var(--mud-palette-error);
}
.sc-console-none[b-4b0aytcpk9] {
    color: var(--text-faint);
    font-style: italic;
}
.sc-console-input[b-4b0aytcpk9] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) var(--space-3) var(--space-2) var(--space-5);
    border-top: 1px solid var(--border-soft);
}
.sc-console-prompt[b-4b0aytcpk9] {
    color: var(--accent);
}
.sc-console-line[b-4b0aytcpk9] {
    flex: 1;
    min-width: 0;
    padding: var(--space-2) 0;
    border: none;
    background: transparent;
    color: var(--text);
    font: inherit;
    outline: none;
}
.sc-console-line[b-4b0aytcpk9]::placeholder {
    color: var(--text-faint);
}
.sc-console-send[b-4b0aytcpk9] {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border: none;
    background: transparent;
    color: var(--text-dim);
    cursor: pointer;
}
.sc-console-send:hover:not(:disabled)[b-4b0aytcpk9] {
    color: var(--accent);
}
.sc-console-send:disabled[b-4b0aytcpk9] {
    opacity: 0.4;
    cursor: default;
}
/* /Components/Softcode/SoftcodeKindBadge.razor.rz.scp.css */
.sc-kind-badge[b-qooumbl9bp] {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    border-radius: 4px;
    display: grid;
    place-items: center;
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    font-weight: 700;
}
/* /Components/Softcode/SoftcodeTabStrip.razor.rz.scp.css */
/* ── Open-attribute tab strip ── */
.sc-tabstrip[b-om87scqrhs] {
    display: flex;
    align-items: stretch;
    overflow-x: auto;
    flex-shrink: 0;
    min-height: 30px;
    background: var(--surface-3);
    border-bottom: 1px solid var(--border);
}
.sc-tab[b-om87scqrhs] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding-right: var(--space-3);
    white-space: nowrap;
    background: transparent;
    border-right: 1px solid var(--border);
    /* Reserved on every tab, coloured only on the active one, so switching tabs
       does not shift the strip by two pixels. */
    border-top: 2px solid transparent;
}
.sc-tab--on[b-om87scqrhs] {
    background: var(--surface);
    border-top-color: var(--accent);
}
.sc-tab-label[b-om87scqrhs] {
    display: flex;
    max-width: 15rem;
    padding: 0 var(--space-2) 0 var(--space-4);
    border: none;
    background: transparent;
    color: var(--text-faint);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    cursor: pointer;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.sc-tab--on .sc-tab-label[b-om87scqrhs] {
    color: var(--accent);
}
/* The dbref recedes so the attribute name — the part that differs between tabs — leads. */
.sc-tab-ref[b-om87scqrhs] {
    opacity: 0.6;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* A deep branch path gives way before the attribute's own name does. */
.sc-tab-leaf[b-om87scqrhs] {
    flex-shrink: 0;
}
.sc-tab-dirty[b-om87scqrhs] {
    flex-shrink: 0;
    /* The MudBlazor palette variable only exists once MudThemeProvider has rendered; the
       fallback is the amber this page already uses for the data-kind attribute badge. */
    color: var(--warn);
    font-size: var(--text-xs);
    line-height: 1;
}
.sc-tab-close[b-om87scqrhs] {
    display: grid;
    place-items: center;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--text-faint);
    cursor: pointer;
}
.sc-tab-close:hover[b-om87scqrhs] {
    background: var(--surface-2);
    color: var(--text);
}
/* /Components/Theme/ThemePreview.razor.rz.scp.css */
/* A page in miniature: the rail down the left, the title and a card beside it. Sizes inside follow the
   preview's own text size (em), so a larger preview (the staff editor's) is the same picture, larger. */
.theme-preview[b-k2kr9yre02] {
	position: relative;
	display: flex;
	width: 100%;
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--border);
	border-radius: var(--radius-row);
	background: var(--bg);
	color: var(--text);
	font-family: var(--font-ui);
	font-size: var(--text-xs);
	line-height: 1.3;
	text-align: left;
}

.theme-preview-rail[b-k2kr9yre02] {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.6em;
	flex: none;
	width: 2.2em;
	padding-top: 0.9em;
	background: var(--rail-bg);
}

.theme-preview-rail i[b-k2kr9yre02] {
	display: block;
	width: 0.9em;
	height: 0.9em;
	border-radius: 30%;
	background: color-mix(in srgb, var(--rail-ink) 55%, transparent);
}

.theme-preview-rail i.is-on[b-k2kr9yre02] {
	background: var(--rail-accent, var(--accent));
}

.theme-preview-page[b-k2kr9yre02] {
	position: relative;
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.35em;
	min-width: 0;
	padding: 0.8em 0.9em;
}

.theme-preview-kicker[b-k2kr9yre02] {
	font-family: var(--font-kicker);
	font-size: 0.75em;
	letter-spacing: var(--kicker-tracking);
	text-transform: uppercase;
	color: var(--text-faint);
}

.theme-preview-title[b-k2kr9yre02] {
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	font-family: var(--font-display);
	font-size: 1.35em;
	font-weight: var(--font-title-weight);
	font-style: var(--title-style);
	letter-spacing: var(--title-tracking);
	text-transform: var(--title-transform);
	line-height: 1.15;
	color: var(--title-color);
	text-shadow: var(--title-shadow);
	background: var(--title-underline) left bottom / min(8em, 100%) var(--title-underline-height) no-repeat;
	padding-bottom: var(--title-underline-pad);
}

.theme-preview-title[b-k2kr9yre02]::before,
.theme-preview-title[b-k2kr9yre02]::after {
	content: var(--ornament-before);
	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 0.6em;
	font-style: normal;
	vertical-align: 0.2em;
	margin-right: 0.4em;
}

.theme-preview-title[b-k2kr9yre02]::after {
	content: var(--ornament-after);
	margin-right: 0;
	margin-left: 0.4em;
}

.theme-preview-card[b-k2kr9yre02] {
	position: relative;
	isolation: isolate;
	display: flex;
	flex: 1 0 auto;
	flex-direction: column;
	gap: 0.35em;
	padding: 0.6em 0.7em;
	border: min(var(--card-border-width), 2px) var(--card-border-style) var(--border);
	border-radius: min(var(--radius-card), 10px);
	background: var(--card-bg);
	backdrop-filter: var(--card-backdrop);
	box-shadow: var(--card-shadow);
}

.theme-preview-card-title[b-k2kr9yre02] {
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	font-family: var(--font-display);
	font-size: 1.05em;
	font-weight: var(--font-title-weight);
	font-style: var(--title-style);
	letter-spacing: var(--title-tracking);
	text-transform: var(--title-transform);
	color: var(--title-color);
	text-shadow: var(--title-shadow);
}

.theme-preview-text[b-k2kr9yre02] {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	color: var(--text-dim);
}

.theme-preview-link[b-k2kr9yre02] {
	color: var(--accent);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.theme-preview-row[b-k2kr9yre02] {
	display: flex;
	align-items: center;
	gap: 0.5em;
	margin-top: auto;
	padding-top: 0.15em;
	min-width: 0;
}

.theme-preview-button[b-k2kr9yre02] {
	padding: 0.2em 0.7em;
	border-radius: var(--radius);
	background: var(--accent);
	color: var(--accent-on);
	font-weight: 600;
	white-space: nowrap;
}

.theme-preview-tag[b-k2kr9yre02] {
	overflow: hidden;
	padding: 0.1em 0.55em;
	border: 1px solid var(--border);
	border-radius: 999px;
	color: var(--text-dim);
	white-space: nowrap;
	text-overflow: ellipsis;
}
/* /Components/Theme/ThemeSwatch.razor.rz.scp.css */
.theme-swatch[b-zmgebtx7pc] {
	position: relative;
	display: inline-flex;
	flex: none;
	width: 72px;
	height: 48px;
	padding: var(--space-3);
	border: 1px solid var(--border);
	border-radius: var(--radius-row);
	background: var(--bg);
}

.theme-swatch-card[b-zmgebtx7pc] {
	position: relative;
	isolation: isolate;
	display: grid;
	flex: 1;
	grid-template-columns: auto 1fr;
	grid-template-rows: 1fr auto;
	align-items: center;
	gap: var(--space-1) var(--space-2);
	padding: var(--space-1) var(--space-2) var(--space-2);
	border: min(var(--card-border-width), 2px) var(--card-border-style) var(--border);
	border-radius: min(var(--radius-card), 8px);
	background: var(--card-bg);
}

.theme-swatch-face[b-zmgebtx7pc] {
	grid-row: 1 / span 2;
	font-family: var(--font-display);
	font-weight: var(--font-title-weight);
	font-style: var(--title-style);
	font-size: var(--text-base);
	line-height: 1;
	color: var(--text);
}

.theme-swatch-line[b-zmgebtx7pc] {
	display: block;
	align-self: end;
	height: 3px;
	border-radius: 2px;
	background: var(--text-dim);
}

.theme-swatch-button[b-zmgebtx7pc] {
	display: block;
	width: 70%;
	height: 5px;
	border-radius: 3px;
	background: var(--accent);
}
/* /Components/Theme/ThemeTokenInput.razor.rz.scp.css */
.adm-theme-token[b-w9vp9pf22x] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-row);
	background: var(--surface-2);
}

.adm-theme-color[b-w9vp9pf22x] {
	flex: none;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 1px solid var(--border);
	border-radius: 8px;
	background: none;
	cursor: pointer;
}

.adm-theme-color:disabled[b-w9vp9pf22x] {
	cursor: default;
}

.adm-theme-token-text[b-w9vp9pf22x] {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.adm-theme-token-name[b-w9vp9pf22x] {
	font-size: var(--text-sm);
	color: var(--text);
}

.adm-theme-hex[b-w9vp9pf22x] {
	width: 6.5em;
	padding: 0;
	border: none;
	background: transparent;
	color: var(--text-dim);
	font-family: var(--font-mono);
	font-size: var(--text-sm);
}

.adm-theme-hex:focus-visible[b-w9vp9pf22x] {
	outline: 1px solid var(--accent);
	outline-offset: 2px;
}
/* /Components/Widgets/ActiveSceneWidget.razor.rz.scp.css */
.active-scene-widget[b-jrupdgtqzd] {
	container-type: inline-size;
	height: 100%;
}

/* the card fills the cell, so a row of widgets keeps one height */
.active-scene-widget[b-jrupdgtqzd]  .kit-card {
	height: 100%;
}

.active-scene-tiles[b-jrupdgtqzd] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.active-scene-archive[b-jrupdgtqzd] {
	display: inline-block;
	margin-top: 8px;
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--accent);
	text-decoration: none;
}

.active-scene-archive:hover[b-jrupdgtqzd],
.active-scene-archive:focus-visible[b-jrupdgtqzd] {
	text-decoration: underline;
}

/* in a page's main column: the main card's body is padded here, and the tiles run across it */
.active-scene-body--main[b-jrupdgtqzd] {
	padding: var(--space-4) var(--space-5) var(--space-5);
}

.active-scene-tiles--main[b-jrupdgtqzd] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(11rem, 100%), 1fr));
	gap: var(--space-4);
}
/* /Components/Widgets/CharacterDirectoryWidget.razor.rz.scp.css */
.char-dir-widget[b-5qz6nm2reg] {
	container-type: inline-size;
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	min-width: 0;
}

.char-dir-bar[b-5qz6nm2reg] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-4);
}

.char-dir-search[b-5qz6nm2reg] {
	width: 240px;
	max-width: 100%;
	height: 36px;
	padding: 0 var(--space-5);
	border: 1px solid var(--border);
	border-radius: 18px;
	background: var(--surface);
	color: var(--text);
	font: inherit;
	font-size: var(--text-sm);
	outline: none;
	box-sizing: border-box;
}

.char-dir-search:focus-visible[b-5qz6nm2reg] {
	border-color: var(--accent);
}

.char-dir-count[b-5qz6nm2reg] {
	font-size: var(--text-sm);
	color: var(--text-faint);
}

.char-dir-grid[b-5qz6nm2reg] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(8rem, 100%), 1fr));
	gap: var(--space-4);
}

/* a narrow zone (an aside) gives the search the whole row */
@container (max-width: 20rem) {
	.char-dir-search[b-5qz6nm2reg] {
		width: 100%;
	}
}
/* /Components/Widgets/CharacterGalleryWidget.razor.rz.scp.css */
.character-gallery-widget[b-rqcp61fhzi] {
	container-type: inline-size;
}

.gallery-view-all[b-rqcp61fhzi] {
	border: 0;
	background: transparent;
	padding: var(--space-2) var(--space-3);
	border-radius: var(--radius-row);
	color: var(--accent);
	font: inherit;
	font-size: var(--text-sm);
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}

.gallery-view-all:hover[b-rqcp61fhzi],
.gallery-view-all:focus-visible[b-rqcp61fhzi] {
	background: var(--surface-2);
	outline: none;
}

.gallery-hero[b-rqcp61fhzi],
.gallery-small-tile[b-rqcp61fhzi] {
	position: relative;
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	border-radius: 10px;
	overflow: hidden;
	background: var(--surface-2);
	cursor: zoom-in;
}

.gallery-hero[b-rqcp61fhzi] {
	height: 124px;
}

.gallery-hero img[b-rqcp61fhzi],
.gallery-small-tile img[b-rqcp61fhzi] {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gallery-hero:focus-visible[b-rqcp61fhzi],
.gallery-small-tile:focus-visible[b-rqcp61fhzi] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.gallery-cover[b-rqcp61fhzi] {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-3);
	width: 100%;
	height: 100%;
	padding: var(--space-2) var(--space-3);
	box-sizing: border-box;
	font-size: var(--text-sm);
	color: var(--text-dim);
	text-align: center;
	overflow: hidden;
}

.gallery-star[b-rqcp61fhzi] {
	position: absolute;
	top: 6px;
	left: 6px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--glass-pill-bg);
	backdrop-filter: var(--glass-filter);
	-webkit-backdrop-filter: var(--glass-filter);
	box-shadow: var(--glass-edge);
	color: var(--warn);
}

.gallery-small[b-rqcp61fhzi] {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-3);
	margin-top: 6px;
}

.gallery-small-tile[b-rqcp61fhzi] {
	height: 56px;
}

.character-gallery-error[b-rqcp61fhzi] {
	padding: var(--space-4);
	border: 1px dashed var(--border);
	border-radius: 10px;
	font-size: var(--text-sm);
	color: var(--text-dim);
	text-align: center;
}

.character-gallery-error[b-rqcp61fhzi] {
	color: var(--link-missing);
}

.gallery-upload[b-rqcp61fhzi] {
	margin-top: 10px;
}

/* The cover and two small tiles held at their sizes while the gallery loads; nothing to open yet. */
.gallery-skeleton[b-rqcp61fhzi] {
	cursor: progress;
}
/* /Components/Widgets/OftenPlaysWithWidget.razor.rz.scp.css */
.often-plays-grid[b-wgzdtrjsfg] {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-4);
}
/* /Components/Widgets/OnlineCharactersWidget.razor.rz.scp.css */
.online-characters-widget[b-i85n7x1cdi] {
	container-type: inline-size;
	height: 100%;
}

.online-characters-rows[b-i85n7x1cdi] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	margin: 0 -4px;
}

/* the presence dot at the row's end (board 30): everyone listed here is connected */
.online-characters-rows[b-i85n7x1cdi]  .online-characters-row::after {
	content: "";
	width: 7px;
	height: 7px;
	margin-left: auto;
	border-radius: 50%;
	background: var(--accent);
	flex-shrink: 0;
}

.online-characters-all[b-i85n7x1cdi] {
	display: inline-block;
	margin-top: 8px;
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--accent);
	text-decoration: none;
}

.online-characters-all:hover[b-i85n7x1cdi],
.online-characters-all:focus-visible[b-i85n7x1cdi] {
	text-decoration: underline;
}

/* in a page's main column: the main card's body is padded here, the rows run across it */
.online-characters-widget--main[b-i85n7x1cdi]  .kit-card-body {
	padding: var(--space-3) var(--space-4) var(--space-4);
}

.online-characters-rows--main[b-i85n7x1cdi] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(12rem, 100%), 1fr));
	gap: var(--space-1) var(--space-4);
	margin: 0;
}

.online-characters-widget--main .online-characters-all[b-i85n7x1cdi] {
	margin-top: 0;
}
/* /Components/Widgets/QuickLinksWidget.razor.rz.scp.css */
.quick-links-widget[b-58ujfahlhn] {
    container-type: inline-size;
}

/* An icon given as a picture sits where MudBlazor draws an SVG icon, at the text's size. */
.ql-icon[b-58ujfahlhn] {
    width: 1.25em;
    height: 1.25em;
    object-fit: contain;
    vertical-align: middle;
    margin-inline-end: var(--space-3);
}
/* /Components/Widgets/QuickstartWidget.razor.rz.scp.css */
.quickstart-widget[b-pkm08s5tz6] {
	container-type: inline-size;
	height: 100%;
}

.quickstart-lead[b-pkm08s5tz6] {
	font-size: var(--text-base);
	font-weight: 700;
	color: var(--text);
}

.quickstart-text[b-pkm08s5tz6] {
	margin: 0;
	font-size: var(--text-sm);
	line-height: 1.5;
	color: var(--text-dim);
}

.quickstart-links[b-pkm08s5tz6] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	margin: 8px -4px 0;
}

/* in a page's main column: the main card's body is padded here, the ways in run across it */
.quickstart-widget--main[b-pkm08s5tz6]  .kit-card-body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-4);
	padding: var(--space-4) var(--space-5) var(--space-5);
}

.quickstart-links--main[b-pkm08s5tz6] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(12rem, 100%), 1fr));
	align-self: stretch;
	gap: var(--space-1) var(--space-4);
	margin: 0 -4px;
}

/* the one offer: a way-in row like the others, filled with the accent */
.quickstart-links[b-pkm08s5tz6]  .kit-row.quickstart-cta {
	background: var(--accent);
	color: var(--accent-on);
	font-weight: 700;
	transition: filter var(--motion-fade);
}

.quickstart-links[b-pkm08s5tz6]  .kit-row.quickstart-cta:hover {
	filter: brightness(1.15);
}

.quickstart-links[b-pkm08s5tz6]  .kit-row.quickstart-cta:focus-visible {
	outline-offset: 2px;
}

.quickstart-links[b-pkm08s5tz6]  .kit-row.quickstart-cta .kit-row-icon {
	background: var(--accent-on);
	color: var(--accent);
}

/* In the narrow aside column the ways in are meta-sized, so the longest of them fits on its line. */
.quickstart-links:not(.quickstart-links--main)[b-pkm08s5tz6]  .kit-row {
	font-size: var(--text-sm);
}
/* /Components/Widgets/RecentScenesWidget.razor.rz.scp.css */
.recent-scenes-view-all[b-3k0kn3a5w0] {
	padding: var(--space-2) var(--space-3);
	border-radius: var(--radius-row);
	color: var(--accent);
	font-size: var(--text-sm);
	font-weight: 600;
	text-decoration: none;
}

.recent-scenes-view-all:hover[b-3k0kn3a5w0],
.recent-scenes-view-all:focus-visible[b-3k0kn3a5w0] {
	background: var(--surface-2);
	outline: none;
}
/* /Components/Widgets/RecentWikiActivityWidget.razor.rz.scp.css */
.recent-wiki-widget[b-1bk9b08hnu] {
	container-type: inline-size;
	height: 100%;
}

/* the card fills the cell, so a row of widgets keeps one height */
.recent-wiki-widget[b-1bk9b08hnu]  .kit-card {
	height: 100%;
}

.recent-wiki-error[b-1bk9b08hnu] {
	font-size: var(--text-sm);
	color: var(--text-faint);
}

/* in a page's main column the main card's body is padded here */
.recent-wiki-widget--main[b-1bk9b08hnu]  .kit-card-body {
	padding: var(--space-3) var(--space-4) var(--space-4);
}

.recent-wiki-all[b-1bk9b08hnu] {
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--accent);
	text-decoration: none;
}

.recent-wiki-all:hover[b-1bk9b08hnu],
.recent-wiki-all:focus-visible[b-1bk9b08hnu] {
	text-decoration: underline;
}
/* /Components/Widgets/StatsWidget.razor.rz.scp.css */
.stats-widget[b-67x5w3r1j2] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	min-width: 0;
}

.stats-tiles[b-67x5w3r1j2] {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(9rem, 100%), 1fr));
	gap: var(--space-4);
}

.stats-tile[b-67x5w3r1j2] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	padding: var(--space-4) var(--space-5);
	background: var(--surface);
	border: var(--tile-edge, 1px solid var(--border));
	border-radius: var(--radius-card);
	box-shadow: var(--tile-shadow, none);
	min-width: 0;
}

.stats-tile--link[b-67x5w3r1j2] {
	color: inherit;
	text-decoration: none;
}

.stats-tile--link:hover[b-67x5w3r1j2],
.stats-tile--link:focus-visible[b-67x5w3r1j2] {
	border-color: var(--accent);
}

.stats-tile-label[b-67x5w3r1j2] {
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: var(--kicker-tracking);
	text-transform: uppercase;
	color: var(--text-faint);
	line-height: 1.5;
	overflow-wrap: anywhere;
}

.stats-tile-value[b-67x5w3r1j2] {
	font-size: var(--text-xl);
	font-weight: 700;
	line-height: 1.2;
	color: var(--accent);
}
/* /Components/Widgets/WelcomeTextWidget.razor.rz.scp.css */
.welcome-text-widget[b-0uvy5ff49q] {
	container-type: inline-size;
	max-width: 100%;
	min-width: 0;
	overflow-wrap: break-word;
}

.welcome-text-body[b-0uvy5ff49q] {
	padding: var(--space-5);
	font-size: var(--text-base);
	line-height: 1.6;
	color: var(--text);
}

.welcome-text-body[b-0uvy5ff49q]  > :first-child {
	margin-top: 0;
}

.welcome-text-body[b-0uvy5ff49q]  > :last-child {
	margin-bottom: 0;
}

.welcome-text-body[b-0uvy5ff49q]  img {
	max-width: 100%;
	height: auto;
}

.welcome-text-body[b-0uvy5ff49q]  pre {
	overflow-x: auto;
}

.welcome-text-body[b-0uvy5ff49q]  table {
	display: block;
	overflow-x: auto;
	max-width: 100%;
}
/* /Components/Widgets/WikiBodyWidget.razor.rz.scp.css */
.wiki-body-widget[b-jxrbrkwa6p] {
	container-type: inline-size;
}

.wiki-body-widget[b-jxrbrkwa6p]  .wiki-body-card .kit-card-body {
	padding: clamp(var(--space-5), 6cqw, var(--space-6)) clamp(var(--space-5), 6cqw, var(--space-6));
}

.wiki-body-widget[b-jxrbrkwa6p]  .wiki-article-body {
	max-width: 640px;
	font-size: var(--text-base);
	line-height: 1.7;
}

.wiki-body-history[b-jxrbrkwa6p] {
	display: inline-flex;
	align-items: center;
	gap: var(--space-3);
	min-height: 28px;
	padding: 0 var(--space-3);
	border-radius: var(--radius-row);
	font-size: var(--text-sm);
	color: var(--text-dim);
	text-decoration: none;
}

.wiki-body-edit[b-jxrbrkwa6p] {
	border: 0;
	background: none;
	font: inherit;
	font-size: var(--text-sm);
	cursor: pointer;
}

.wiki-body-history:hover[b-jxrbrkwa6p],
.wiki-body-history:focus-visible[b-jxrbrkwa6p] {
	color: var(--text);
	background: var(--surface-2);
	outline: none;
}
/* /Components/Widgets/WikiIndexWidget.razor.rz.scp.css */
/* Wrapper carries the container-type: an element is never its own query container. */
.wiki-index-container[b-wehxkgnm7d] {
	container-type: inline-size;
}

.wiki-index[b-wehxkgnm7d] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

/* ── Hero: blurb left, glass search right, inside the banner's secondary slot ── */
.wiki-hero-row[b-wehxkgnm7d] {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--space-5);
}

.wiki-hero-blurb[b-wehxkgnm7d] {
	margin: 0;
	max-width: 360px;
	font-size: var(--text-sm);
	line-height: 1.45;
	color: var(--text-on-image);
}

.wiki-hero-search[b-wehxkgnm7d] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	width: 280px;
	height: 40px;
	padding: 0 var(--space-4);
	border-radius: 20px;
	background: var(--glass-bg);
	backdrop-filter: var(--glass-filter);
	-webkit-backdrop-filter: var(--glass-filter);
	box-shadow: var(--glass-edge);
	color: var(--text-on-image);
	pointer-events: auto;
}

.wiki-hero-search input[b-wehxkgnm7d] {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	background: transparent;
	color: var(--text);
	font: inherit;
	font-size: var(--text-base);
	outline: none;
	text-shadow: none;
}

.wiki-hero-search input[b-wehxkgnm7d]::placeholder {
	color: var(--text-on-image);
}

.wiki-hero-search:focus-within[b-wehxkgnm7d] {
	box-shadow: var(--glass-edge), 0 0 0 2px var(--accent);
}

/* ── Category cards ── */
.wiki-cat-grid[b-wehxkgnm7d] {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-5);
}

.wiki-cat-card[b-wehxkgnm7d] {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	min-width: 0;
	background: var(--card-bg);
	border: var(--card-border-width) var(--card-border-style) var(--border);
	border-radius: var(--radius-card);
	box-shadow: var(--card-shadow);
	overflow: hidden;
}

.wiki-cat-cover[b-wehxkgnm7d] {
	display: block;
	width: 100%;
	height: 76px;
	object-fit: cover;
	filter: var(--image-filter);
}

.wiki-cat-cover-fallback[b-wehxkgnm7d] {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--surface-2);
	color: var(--text-dim);
}

.wiki-cat-body[b-wehxkgnm7d] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	padding: var(--space-4) var(--space-5) var(--space-5);
}

.wiki-cat-head[b-wehxkgnm7d] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.wiki-cat-name[b-wehxkgnm7d] {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	font-family: var(--font-display);
	font-size: var(--text-base);
	font-weight: var(--font-title-weight);
	font-style: var(--title-style);
	letter-spacing: var(--title-tracking);
	text-transform: var(--title-transform);
	color: var(--title-color);
	text-shadow: var(--title-shadow);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.wiki-cat-count[b-wehxkgnm7d] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.wiki-cat-pages[b-wehxkgnm7d] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}

.wiki-cat-page[b-wehxkgnm7d] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	min-height: 28px;
	padding: 0 var(--space-3);
	margin: 0 -6px;
	border-radius: 6px;
	color: var(--text);
	font-size: var(--text-base);
	text-decoration: none;
}

.wiki-cat-page:hover[b-wehxkgnm7d],
.wiki-cat-page:focus-visible[b-wehxkgnm7d] {
	background: var(--surface-2);
	outline: none;
}

.wiki-cat-page-title[b-wehxkgnm7d] {
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.wiki-cat-tag[b-wehxkgnm7d] {
	height: 18px;
	padding: 0 var(--space-3);
	border-radius: 9px;
	background: var(--surface-2);
	color: var(--text-dim);
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	letter-spacing: 0.04em;
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
}

.wiki-cat-tag--draft[b-wehxkgnm7d] {
	color: var(--warn);
	background: var(--warn-tint);
}

.wiki-cat-all[b-wehxkgnm7d] {
	margin-top: 4px;
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--accent);
	text-decoration: none;
}

.wiki-cat-all:hover[b-wehxkgnm7d],
.wiki-cat-all:focus-visible[b-wehxkgnm7d] {
	text-decoration: underline;
}

.wiki-skeleton[b-wehxkgnm7d] {
	height: 200px;
	border-radius: var(--radius-card);
	background: var(--surface-2);
}

.wiki-empty-hint[b-wehxkgnm7d] {
	margin-top: 6px;
	font-size: var(--text-sm);
	color: var(--text-faint);
}

/* the widget sizes itself against its own box: 2 columns when narrower than 48rem, 1 under 30rem */
/* The widget queries its own width. In the D1 frame at 1280×800 main is about 740px beside the aside,
   where board 21 keeps the search beside the blurb and three category columns, so the first step
   down is below that. */
@container (max-width: 40rem) {
	.wiki-cat-grid[b-wehxkgnm7d] {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wiki-hero-row[b-wehxkgnm7d] {
		flex-direction: column;
		align-items: stretch;
	}

	.wiki-hero-search[b-wehxkgnm7d] {
		width: 100%;
	}
}

@container (max-width: 30rem) {
	.wiki-cat-grid[b-wehxkgnm7d] {
		grid-template-columns: minmax(0, 1fr);
	}

	/* a phone: the hero keeps its title on one line and its search, and drops the blurb, so the
	   fixed-height banner does not clip the title */
	.wiki-index[b-wehxkgnm7d]  .kit-banner-title {
		font-size: var(--text-lg);
	}

	.wiki-hero-blurb[b-wehxkgnm7d] {
		display: none;
	}
}

.wiki-collections[b-wehxkgnm7d] { margin-block: 1.5rem; display: grid; gap: var(--space-4); }
.wiki-collection-entry[b-wehxkgnm7d] { display: flex; justify-content: space-between; gap: var(--space-5); padding: var(--space-5) var(--space-5); color: var(--text); border: 1px solid var(--border); border-radius: var(--radius-row); }
.wiki-collection-entry:focus-visible[b-wehxkgnm7d], .wiki-browse-all:focus-visible[b-wehxkgnm7d] { outline: 2px solid var(--accent); outline-offset: 3px; }
.wiki-browse-all[b-wehxkgnm7d] { display: inline-block; margin-block: 1rem; }
/* /Components/Wiki/WikiCategoryFacets.razor.rz.scp.css */
.wiki-facets[b-6wefqhldsf] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    margin: 12px 0;
}
.wiki-facets-filters[b-6wefqhldsf] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4) var(--space-6);
}
.wiki-facet[b-6wefqhldsf] {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}
.wiki-facet legend[b-6wefqhldsf] {
    padding: 0;
    margin-bottom: 4px;
    color: var(--text-dim);
    font-size: var(--text-sm);
}
.wiki-facet-values[b-6wefqhldsf] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
}
.wiki-facet-value[b-6wefqhldsf],
.wiki-facets-clear[b-6wefqhldsf] {
    min-height: 44px;
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--border);
    border-radius: var(--radius-row);
    background: var(--surface);
    color: var(--text);
    font: inherit;
    cursor: pointer;
}
.wiki-facet-value[aria-pressed="true"][b-6wefqhldsf] {
    border-color: var(--accent);
    color: var(--accent);
    font-weight: 600;
}
.wiki-facet-value:disabled[b-6wefqhldsf],
.wiki-facets-clear:disabled[b-6wefqhldsf] { opacity: .5; cursor: default; }
.wiki-facet-value:focus-visible[b-6wefqhldsf],
.wiki-facets-clear:focus-visible[b-6wefqhldsf] { outline: 2px solid var(--accent); outline-offset: 3px; }
.wiki-facet-count[b-6wefqhldsf] {
    margin-left: 4px;
    color: var(--text-faint);
    font-size: var(--text-sm);
    font-variant-numeric: tabular-nums;
}
.wiki-facet-more[b-6wefqhldsf],
.wiki-facets-note[b-6wefqhldsf] {
    margin: 0;
    color: var(--text-faint);
    font-size: var(--text-sm);
}
.wiki-facets-summary[b-6wefqhldsf] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-4);
}
.wiki-facets-message[b-6wefqhldsf] { color: var(--danger); }
/* /Components/Wiki/WikiCategoryMembers.razor.rz.scp.css */
.wiki-cat[b-f8isw7b84j] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

.wiki-cat-grid[b-f8isw7b84j] {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-5);
}

@container page (max-width: 64rem) {
	.wiki-cat-grid[b-f8isw7b84j] {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@container page (max-width: 48rem) {
	.wiki-cat-grid[b-f8isw7b84j] {
		grid-template-columns: minmax(0, 1fr);
	}
	.wiki-cat-paging button[b-f8isw7b84j] { flex: 1; }
}

.wiki-cat-range[b-f8isw7b84j] { margin: 0; }
.wiki-cat-range:focus-visible[b-f8isw7b84j] { outline: 2px solid var(--accent); outline-offset: 3px; }
.wiki-cat-paging[b-f8isw7b84j] { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.wiki-cat button[b-f8isw7b84j] { min-height: 44px; padding: var(--space-3) var(--space-4); border: 1px solid var(--border); border-radius: var(--radius-row); background: var(--surface); color: var(--text); font: inherit; cursor: pointer; }
.wiki-cat button:disabled[b-f8isw7b84j] { opacity: .5; cursor: default; }
.wiki-cat button:focus-visible[b-f8isw7b84j] { outline: 2px solid var(--accent); outline-offset: 3px; }
/* /Components/Wiki/WikiCategoryPicker.razor.rz.scp.css */
.wcp[b-tt4zkh6rh2] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	min-width: 0;
}

.wcp-chips[b-tt4zkh6rh2] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
}

.wcp-chip[b-tt4zkh6rh2] {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	height: 28px;
	padding: 0 var(--space-2) 0 var(--space-3);
	border-radius: 14px;
	background: rgba(var(--glow), 0.10);
	border: 1px solid rgba(var(--glow), 0.28);
	color: var(--text);
	font-size: var(--text-sm);
}

.wcp-chip[b-tt4zkh6rh2]  .wcp-chip-icon {
	color: var(--accent);
	font-size: var(--text-base);
}

.wcp-chip-remove[b-tt4zkh6rh2] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--text-dim);
	cursor: pointer;
}

.wcp-chip-remove:hover[b-tt4zkh6rh2],
.wcp-chip-remove:focus-visible[b-tt4zkh6rh2] {
	background: var(--border);
	color: var(--text);
}

.wcp-chip-remove[b-tt4zkh6rh2]  .mud-icon-root {
	font-size: var(--text-base);
}

.wcp-suggest[b-tt4zkh6rh2] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
}

.wcp-option[b-tt4zkh6rh2] {
	display: inline-flex;
	align-items: center;
	gap: var(--space-3);
	height: 28px;
	padding: 0 var(--space-4);
	border: 1px solid var(--border);
	border-radius: 14px;
	background: var(--surface-2);
	color: var(--text);
	font: inherit;
	font-size: var(--text-sm);
	cursor: pointer;
	transition: border-color var(--motion-fade), background var(--motion-fade);
}

.wcp-option:hover[b-tt4zkh6rh2],
.wcp-option:focus-visible[b-tt4zkh6rh2] {
	border-color: var(--accent);
	outline: none;
}

.wcp-option--new[b-tt4zkh6rh2] {
	border-style: dashed;
	border-color: rgba(var(--glow), 0.5);
	color: var(--accent);
}

.wcp-option--new[b-tt4zkh6rh2]  .mud-icon-root {
	font-size: var(--text-base);
}

.wcp-option-count[b-tt4zkh6rh2] {
	min-width: 1.25rem;
	padding: 0 var(--space-2);
	border-radius: 9px;
	background: var(--border);
	color: var(--text-dim);
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	line-height: 1.1rem;
	text-align: center;
}
/* /Components/Wiki/WikiCollectionBrowser.razor.rz.scp.css */
.wiki-collection-browser[b-pbka004r19] { min-width: 0; display: grid; gap: var(--space-5); }
.wiki-collection-landing[b-pbka004r19] { min-width: 0; display: grid; gap: var(--space-2); padding: var(--space-4) var(--space-5); border: 1px solid var(--border); border-inline-start: 3px solid var(--accent); border-radius: var(--radius-row); background: var(--surface); }
.wiki-collection-landing h2[b-pbka004r19] { margin: 0; font-size: var(--text-base); color: var(--text-dim); }
.wiki-collection-landing a[b-pbka004r19] { min-width: 0; min-height: 44px; display: flex; align-items: center; color: var(--accent); font-size: var(--text-md); font-weight: 600; overflow-wrap: anywhere; }
.wiki-collection-featured[b-pbka004r19] { min-width: 0; }
.wiki-collection-featured h2[b-pbka004r19] { margin: 0 0 .65rem; font-size: var(--text-md); color: var(--text-dim); }
.wiki-collection-featured-grid[b-pbka004r19] { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: var(--space-4); }
.wiki-collection-featured .wiki-collection-topic[b-pbka004r19] { align-items: start; flex-direction: column; padding: var(--space-5); border-inline-start: 3px solid var(--accent); }
.wiki-collection-featured .wiki-collection-category-intro[b-pbka004r19] { flex: none; width: 100%; min-height: 44px; display: flex; align-items: center; font-size: var(--text-md); text-decoration: none; }
.wiki-collection-featured .wiki-collection-category-intro:hover[b-pbka004r19] { text-decoration: underline; }
.wiki-collection-featured button[b-pbka004r19] { color: var(--text-dim); }
.wiki-collection-featured button[aria-pressed="true"][b-pbka004r19] { color: var(--accent); }
.wiki-collection-featured button span[b-pbka004r19] { margin-inline-start: .5rem; }
.wiki-collection-search[b-pbka004r19], .wiki-collection-topics[b-pbka004r19], .wiki-collection-paging[b-pbka004r19] { display: flex; flex-wrap: wrap; gap: var(--space-3); }
input[b-pbka004r19] { min-width: 0; max-width: 100%; padding: var(--space-4); border: 1px solid var(--border); border-radius: var(--radius-row); background: var(--surface); color: var(--text); font: inherit; }
.wiki-collection-search input[b-pbka004r19] { flex: 1 1 14rem; }
button[b-pbka004r19] { padding: var(--space-3) var(--space-4); border: 1px solid var(--border); border-radius: var(--radius-row); background: var(--surface); color: var(--text); font: inherit; cursor: pointer; }
button[aria-pressed="true"][b-pbka004r19] { border-color: var(--accent); color: var(--accent); }
button:disabled[b-pbka004r19] { opacity: .5; cursor: default; }
button:focus-visible[b-pbka004r19], a:focus-visible[b-pbka004r19], input:focus-visible[b-pbka004r19], summary:focus-visible[b-pbka004r19] { outline: 2px solid var(--accent); outline-offset: 3px; }
summary[b-pbka004r19] { cursor: pointer; padding-block: var(--space-3); }
.wiki-collection-category-list[b-pbka004r19] { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: var(--space-3); margin-block: .75rem; }
.wiki-collection-category-list button[b-pbka004r19] { display: flex; text-align: start; justify-content: space-between; gap: var(--space-4); }
.wiki-collection-pages[b-pbka004r19] { display: grid; }
.wiki-collection-page[b-pbka004r19] { display: flex; justify-content: space-between; gap: var(--space-5); padding: var(--space-4) var(--space-2); border-bottom: 1px solid var(--border); color: var(--text); overflow-wrap: anywhere; }
.wiki-collection-page-context[b-pbka004r19] { opacity: .65; font-size: var(--text-sm); }
.wiki-collection-range[b-pbka004r19] { margin: 0; }
.wiki-collection-error[b-pbka004r19] { color: var(--text); padding: var(--space-5); border: 1px solid var(--border); }
.wiki-collection-topics button[b-pbka004r19] { display: inline-flex; align-items: center; gap: var(--space-3); }
.wiki-collection-topics span[b-pbka004r19] { opacity: .65; }

.wiki-collection-topic[b-pbka004r19] { min-width: 0; display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2) var(--space-4); padding: var(--space-2) var(--space-3); border: 1px solid var(--border); border-radius: var(--radius-row); background: var(--surface); }
.wiki-collection-category-intro[b-pbka004r19], .wiki-collection-category-name[b-pbka004r19] { min-width: 0; flex: 1 1 8rem; padding-block: var(--space-3); color: var(--text); font-weight: 600; overflow-wrap: anywhere; }
.wiki-collection-category-intro:hover[b-pbka004r19] { color: var(--accent); }
.wiki-collection-topic button[b-pbka004r19] { min-height: 44px; font-size: var(--text-sm); }
.wiki-collection-topics > button[b-pbka004r19] { min-height: 44px; }
@container page (max-width: 48rem) {
    .wiki-collection-topic[b-pbka004r19] { width: 100%; box-sizing: border-box; }
    .wiki-collection-page[b-pbka004r19] { flex-direction: column; gap: var(--space-2); }
    .wiki-collection-paging button[b-pbka004r19] { min-height: 44px; flex: 1; }
}
/* /Components/Wiki/WikiFactBox.razor.rz.scp.css */
.wiki-facts[b-i2l29hxf6u] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-top: 12px;
}
.wiki-facts-label[b-i2l29hxf6u] {
    color: var(--text-faint);
    font-size: var(--text-sm);
}
.wiki-facts-list[b-i2l29hxf6u] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: var(--space-2) var(--space-5);
    margin: 0;
    font-size: var(--text-sm);
}
.wiki-facts-list dt[b-i2l29hxf6u] {
    color: var(--text-dim);
}
.wiki-facts-list + .wiki-facts-label[b-i2l29hxf6u] { margin-top: 6px; }
.wiki-facts-list dd[b-i2l29hxf6u] {
    margin: 0;
    color: var(--text);
    overflow-wrap: anywhere;
}
.wiki-facts-sep[b-i2l29hxf6u] { color: var(--text-faint); }
.wiki-facts-list a[b-i2l29hxf6u] {
    color: var(--accent);
    text-decoration: none;
}
.wiki-facts-list a:hover[b-i2l29hxf6u],
.wiki-facts-list a:focus-visible[b-i2l29hxf6u] { text-decoration: underline; }
/* /Components/Wiki/WikiFactEditor.razor.rz.scp.css */
.wiki-edit-facts[b-u3tqbpqjas] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: 0.75rem;
}
.wiki-edit-facts-label[b-u3tqbpqjas] {
    font-family: var(--font-kicker);
    font-size: var(--text-xs);
    letter-spacing: var(--kicker-tracking);
    text-transform: uppercase;
    color: var(--text-faint);
}
.wiki-edit-fact[b-u3tqbpqjas] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    padding: var(--space-2) var(--space-2) var(--space-2) var(--space-3);
    border-radius: 99px;
    background: var(--surface-2);
    color: var(--text-dim);
    border: 1px solid var(--border);
}
.wiki-edit-fact input[b-u3tqbpqjas],
.wiki-edit-fact select[b-u3tqbpqjas],
.wiki-edit-facts > select[b-u3tqbpqjas] {
    background: transparent; border: none; outline: none; color: var(--text);
    font-family: var(--font-ui); font-size: var(--text-sm); max-width: 160px;
}
.wiki-edit-fact input[b-u3tqbpqjas] { width: 120px; }
.wiki-edit-fact button[b-u3tqbpqjas],
.wiki-edit-fact-add[b-u3tqbpqjas] {
    border: none; background: transparent; color: inherit; cursor: pointer;
    font-size: var(--text-base); line-height: 1; padding: 0 var(--space-1); opacity: 0.7;
}
.wiki-edit-fact button:hover[b-u3tqbpqjas],
.wiki-edit-fact-add:hover[b-u3tqbpqjas] { opacity: 1; }
.wiki-edit-facts :disabled[b-u3tqbpqjas] { opacity: 0.55; cursor: not-allowed; }
/* /Components/Wiki/WikiFactPropertiesAdmin.razor.rz.scp.css */
.wikiprops-scroll[b-nz262131ej] {
	overflow-x: auto;
}

.wikiprops-table[b-nz262131ej] {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--text-sm);
}

.wikiprops-table th[b-nz262131ej] {
	text-align: left;
	font-weight: 600;
	color: var(--text-dim);
	padding: var(--space-3) var(--space-3);
	border-bottom: 1px solid var(--border);
}

.wikiprops-table td[b-nz262131ej] {
	padding: var(--space-3) var(--space-3);
	border-bottom: 1px solid var(--border);
	vertical-align: top;
}

.wikiprops-key[b-nz262131ej],
.wikiprops-type[b-nz262131ej],
.wikiprops-values[b-nz262131ej] {
	font-family: var(--font-mono);
}

.wikiprops-key[b-nz262131ej] {
	white-space: nowrap;
}

.wikiprops-label[b-nz262131ej] {
	display: block;
}

.wikiprops-desc[b-nz262131ej] {
	display: block;
	color: var(--text-dim);
}

.wikiprops-multiple[b-nz262131ej] {
	margin-left: 0.375rem;
	padding: 0 var(--space-3);
	border-radius: 9px;
	background: var(--border);
	color: var(--text-dim);
}

.wikiprops-actions[b-nz262131ej] {
	white-space: nowrap;
	text-align: right;
}

.wikiprops-form[b-nz262131ej] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.wikiprops-hint[b-nz262131ej] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}
/* /Components/Wiki/WikiFactResults.razor.rz.scp.css */
.wiki-fact-results-more[b-sabodul4bd] {
    align-self: flex-start;
    min-height: 44px;
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--border);
    border-radius: var(--radius-row);
    background: var(--surface);
    color: var(--text);
    font: inherit;
    cursor: pointer;
}
.wiki-fact-results-more:disabled[b-sabodul4bd] { opacity: .5; cursor: default; }
.wiki-fact-results-more:focus-visible[b-sabodul4bd] { outline: 2px solid var(--accent); outline-offset: 3px; }
.wiki-fact-results[b-sabodul4bd] {
    margin: 0;
    padding-left: var(--space-5);
}
.wiki-fact-results a[b-sabodul4bd] {
    color: var(--accent);
    text-decoration: none;
}
.wiki-fact-results a:hover[b-sabodul4bd],
.wiki-fact-results a:focus-visible[b-sabodul4bd] { text-decoration: underline; }
.wiki-fact-results-message[b-sabodul4bd] { color: var(--danger); }
.wiki-fact-results-scroll[b-sabodul4bd] { overflow-x: auto; }
.wiki-fact-results-table[b-sabodul4bd] {
    padding: 0;
    border-collapse: collapse;
    font-size: var(--text-sm);
}
.wiki-fact-results-table th[b-sabodul4bd],
.wiki-fact-results-table td[b-sabodul4bd] {
    padding: var(--space-2) var(--space-5) var(--space-2) 0;
    text-align: left;
    vertical-align: top;
}
.wiki-fact-results-table thead th[b-sabodul4bd] {
    color: var(--text-dim);
    font-weight: 600;
    border-bottom: 1px solid var(--border);
}
.wiki-fact-results-table tbody th[b-sabodul4bd] { font-weight: 400; }
/* /Components/Wiki/WikiFactSearch.razor.rz.scp.css */
.wiki-fact-search[b-p56xz30pq9] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin: 12px 0;
}
.wiki-fact-search-form[b-p56xz30pq9] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}
.wiki-fact-search-form label[b-p56xz30pq9] {
    color: var(--text-dim);
    font-size: var(--text-sm);
}
.wiki-fact-search-row[b-p56xz30pq9] {
    display: flex;
    gap: var(--space-3);
}
.wiki-fact-search-row input[b-p56xz30pq9] {
    flex: 1;
    min-width: 0;
    min-height: 44px;
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--border);
    border-radius: var(--radius-row);
    background: var(--surface);
    color: var(--text);
    font: inherit;
    font-family: var(--font-mono);
}
.wiki-fact-search button[b-p56xz30pq9] {
    min-height: 44px;
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--border);
    border-radius: var(--radius-row);
    background: var(--surface);
    color: var(--text);
    font: inherit;
    cursor: pointer;
}
.wiki-fact-search button:disabled[b-p56xz30pq9] { opacity: .5; cursor: default; }
.wiki-fact-search input:focus-visible[b-p56xz30pq9],
.wiki-fact-search button:focus-visible[b-p56xz30pq9] { outline: 2px solid var(--accent); outline-offset: 3px; }
.wiki-fact-search-hint[b-p56xz30pq9] {
    color: var(--text-faint);
    font-size: var(--text-sm);
    overflow-wrap: anywhere;
}
/* /Components/Wiki/WikiMentionedCard.razor.rz.scp.css */
.wiki-mentioned-grid[b-hnalb19b15] {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-4);
}
/* /Components/Wiki/WikiMoreCard.razor.rz.scp.css */
.wiki-more-all[b-d856w75ul7] {
	display: inline-block;
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--accent);
	text-decoration: none;
}

.wiki-more-all:hover[b-d856w75ul7],
.wiki-more-all:focus-visible[b-d856w75ul7] {
	text-decoration: underline;
}
/* /Components/Wiki/WikiRequirementsEditor.razor.rz.scp.css */
/* Each namespace, category or page is a block of its own */
.wiki-req[b-9leycnfi22] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	min-width: 0;
	padding: var(--space-4) var(--space-5);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-row);
	background: var(--surface-2);
}

.wiki-req--editing[b-9leycnfi22] {
	border-color: var(--border);
}

.wiki-req-head[b-9leycnfi22] {
	display: flex;
	align-items: flex-start;
	gap: var(--space-3);
}

.wiki-req-titles[b-9leycnfi22] {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}

.wiki-req-kicker[b-9leycnfi22] {
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--text-faint);
}

.wiki-req-title[b-9leycnfi22] {
	margin: 0;
	font-size: var(--text-base);
	font-weight: 600;
	color: var(--text);
	overflow-wrap: anywhere;
}

.wiki-req-sub[b-9leycnfi22],
.wiki-req-help[b-9leycnfi22] {
	margin: 0;
	font-size: var(--text-sm);
	line-height: 1.4;
	color: var(--text-dim);
}

.wiki-req-head[b-9leycnfi22]  .wiki-req-edit {
	margin: -0.25rem -0.375rem 0 0;
}

.wiki-req-list[b-9leycnfi22] {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: var(--space-3) var(--space-4);
	margin: 0;
	font-size: var(--text-sm);
}

.wiki-req-list dt[b-9leycnfi22] {
	color: var(--text-dim);
}

.wiki-req-list dd[b-9leycnfi22] {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
}

.wiki-req-actions[b-9leycnfi22] {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: var(--space-3);
	padding-top: var(--space-4);
	border-top: 1px solid var(--border-soft);
}

.wiki-req-field[b-9leycnfi22] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.wiki-req-label[b-9leycnfi22] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.wiki-req-chips[b-9leycnfi22] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
}

.wiki-req-option[b-9leycnfi22] {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.wiki-req-option-name[b-9leycnfi22] {
	font-size: var(--text-sm);
	color: var(--text);
}

.wiki-req-option-scope[b-9leycnfi22] {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	color: var(--text-faint);
}

.wiki-req-option-desc[b-9leycnfi22] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

/* The picker's popover renders outside .wiki-req, but its templates are this component's markup and carry its scope */
.wiki-req-define[b-9leycnfi22] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	padding: var(--space-3) var(--space-5);
	border-top: 1px solid var(--border-soft);
	color: var(--accent);
	font-size: var(--text-sm);
	text-decoration: none;
}

.wiki-req-chip[b-9leycnfi22] {
	display: inline-flex;
	align-items: center;
	gap: var(--space-1);
	padding: 0 0 0 var(--space-3);
	border: 1px solid var(--border);
	border-radius: 99px;
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text);
}

.wiki-req-chip[b-9leycnfi22]  .wiki-req-chip-x {
	padding: var(--space-1);
}

.wiki-req-chip[b-9leycnfi22]  .wiki-req-chip-x svg {
	font-size: var(--text-base);
}

.wiki-req-actions-start[b-9leycnfi22] {
	margin-right: auto;
}

.wiki-req-actions-start .wiki-req-define[b-9leycnfi22] {
	border-top: none;
	padding: var(--space-2) 0;
}
/* /Components/Wiki/WikiSidebar.razor.rz.scp.css */
.wiki-side-new[b-qaugpb6nk8] {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-3);
	height: 44px;
	border: 1px dashed var(--border);
	border-radius: var(--radius-row);
	background: transparent;
	color: var(--text);
	font: inherit;
	font-size: var(--text-base);
	font-weight: 600;
	cursor: pointer;
	transition: border-color var(--motion-fade), color var(--motion-fade);
}

.wiki-side-new:hover[b-qaugpb6nk8],
.wiki-side-new:focus-visible[b-qaugpb6nk8] {
	border-color: var(--accent);
	color: var(--accent);
	outline: none;
}

.wiki-side-new-form[b-qaugpb6nk8] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.wiki-side-new-form input[b-qaugpb6nk8] {
	flex: 1 1 auto;
	min-width: 0;
	height: 36px;
	padding: 0 var(--space-4);
	border: 1px solid var(--accent);
	border-radius: var(--radius-row);
	background: var(--surface);
	color: var(--text);
	font: inherit;
	font-size: var(--text-base);
	outline: none;
}

.wiki-side-category[b-qaugpb6nk8] { display: flex; align-items: center; gap: var(--space-1); min-width: 0; }
.wiki-side-category[b-qaugpb6nk8] >  .kit-row { flex: 1; min-width: 0; }
.wiki-side-members[b-qaugpb6nk8] { display: grid; place-items: center; flex-shrink: 0; width: 32px; height: 32px; border-radius: var(--radius-row); color: var(--text-dim); }
.wiki-side-members:hover[b-qaugpb6nk8] { background: var(--surface); color: var(--accent); }
.wiki-side-members[aria-current="page"][b-qaugpb6nk8] { color: var(--accent); }
.wiki-side-members:focus-visible[b-qaugpb6nk8] { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--radius-row); }
/* /Components/Wiki/WikiTocCard.razor.rz.scp.css */
.wiki-toc[b-450wc0vnmh] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}

.wiki-toc a[b-450wc0vnmh] {
	display: block;
	padding: var(--space-2) var(--space-4);
	border-left: 2px solid transparent;
	border-radius: 0 6px 6px 0;
	color: var(--text-dim);
	font-size: var(--text-sm);
	text-decoration: none;
}

.wiki-toc a:hover[b-450wc0vnmh],
.wiki-toc a:focus-visible[b-450wc0vnmh] {
	color: var(--text);
	background: var(--surface-2);
	outline: none;
}

.wiki-toc a[aria-current][b-450wc0vnmh] {
	color: var(--accent);
	border-left-color: var(--accent);
}

.wiki-locales[b-450wc0vnmh] {
	margin-top: 10px;
}

.wiki-lang-chips[b-450wc0vnmh] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	padding: 0 var(--space-2);
}

.wiki-lang-chip[b-450wc0vnmh] {
	height: 26px;
	padding: 0 var(--space-4);
	border-radius: 13px;
	background: var(--surface-2);
	color: var(--text);
	font-size: var(--text-sm);
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}

.wiki-lang-chip:hover[b-450wc0vnmh],
.wiki-lang-chip:focus-visible[b-450wc0vnmh] {
	background: var(--border);
	outline: none;
}
/* /Components/WikiDisplay.razor.rz.scp.css */
/* ── Not-embedded page: main beside the aside; the biography (embedded) is just the article ── */
.wiki-page[b-0w0y8cshyp] {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--aside-w);
	gap: var(--space-5);
	align-items: start;
}

.wiki-page--embedded[b-0w0y8cshyp] {
	grid-template-columns: minmax(0, 1fr);
	gap: 0;
}

.wiki-page-main[b-0w0y8cshyp] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	min-width: 0;
}

/* Return actions remain distinct and wrap within the available article width. */
.wiki-journey[b-0w0y8cshyp] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3) var(--space-5);
}

.wiki-journey[b-0w0y8cshyp]  .wiki-back {
	align-self: center;
	margin-bottom: 0;
	max-width: 100%;
	overflow-wrap: anywhere;
}

.wiki-game-link[b-0w0y8cshyp] {
	overflow-wrap: anywhere;
}

.wiki-page-aside[b-0w0y8cshyp] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	min-width: 0;
}

/* ── Body card: a 640px measure at 15px/1.7 ── */
.wiki-page-main[b-0w0y8cshyp]  .wiki-article-card .kit-card-body {
	padding: var(--space-6) var(--space-7) var(--space-7);
}

.wiki-article-body[b-0w0y8cshyp] {
	max-width: 640px;
	font-size: var(--text-base);
	line-height: 1.7;
}

.wiki-article-body[b-0w0y8cshyp]  h2 {
	font-size: var(--text-md);
}

/* The author chooses the action and its place in the article. */
.WikiContent[b-0w0y8cshyp]  .wiki-next-step {
	margin-block: 1.5rem;
	padding: var(--space-5) var(--space-6);
	border: 1px solid var(--border);
	border-inline-start: 3px solid var(--accent);
	border-radius: var(--radius-row);
	background: var(--surface-2);
	color: var(--text);
	font-size: inherit;
	overflow-wrap: anywhere;
}

.WikiContent[b-0w0y8cshyp]  .wiki-next-step > :first-child { margin-top: 0; }
.WikiContent[b-0w0y8cshyp]  .wiki-next-step > :last-child { margin-bottom: 0; }
.WikiContent[b-0w0y8cshyp]  a:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 3px;
	border-radius: 2px;
}

.wiki-article-body[b-0w0y8cshyp]  pre,
.wiki-article-body[b-0w0y8cshyp]  table {
	overflow-x: auto;
}

/* meta line under the title: "Last edited by X · when · anyone can edit" */
.wiki-meta-sep[b-0w0y8cshyp] {
	color: var(--text-on-image);
}

.wiki-meta-edit[b-0w0y8cshyp] {
	color: var(--text-on-image);
}

/* ── Embedded article (a biography on a profile): the pre-D1 frame, no chrome ── */
.wiki-article-main[b-0w0y8cshyp] {
	min-width: 0;
}

.wiki-article-kicker[b-0w0y8cshyp] {
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: var(--kicker-tracking);
	text-transform: uppercase;
	color: var(--text-faint);
}

.wiki-article-title[b-0w0y8cshyp] {
	margin: 4px 0 12px;
	font-family: var(--font-display);
	font-size: var(--text-xl);
	font-weight: 700;
	color: var(--text);
}

/* ── The fallback notice's language chips (the aside's cards style their own) ── */
.wiki-lang-chips[b-0w0y8cshyp] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	padding: 0 var(--space-2);
}

/* Mermaid owns a fixed dark palette; keep its canvas paired with that palette even in light portal themes. */
.WikiContent[b-0w0y8cshyp]  .mermaid {
	background: var(--mermaid-bg);
	color: var(--mermaid-text);
	padding: var(--space-5);
	border-radius: var(--radius);
	display: flex;
	justify-content: center;
	margin: 1rem 0;
}

.WikiContent[b-0w0y8cshyp]  .mermaid svg {
	max-width: 100%;
	height: auto;
}

/* README §3: main and aside stay side by side at the medium tier; only narrow stacks them */
@container page (max-width: 48rem) {
	.wiki-page[b-0w0y8cshyp] {
		grid-template-columns: minmax(0, 1fr);
	}
}

@container page (max-width: 48rem) {
	.wiki-page-main[b-0w0y8cshyp]  .wiki-article-card .kit-card-body {
		padding: var(--space-5) var(--space-5) var(--space-5);
	}
}
/* /Components/WikiEdit.razor.rz.scp.css */
.wiki-edit[b-gltvwr7e7y] {
    height: 100%;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.wiki-edit-header[b-gltvwr7e7y] {
    display: flex;
    align-items: center;
    gap: var(--space-5);
    margin-bottom: 0.875rem;
}
.wiki-edit-cancel[b-gltvwr7e7y] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    background: none;
    border: none;
    cursor: pointer;
    color: var(--text-dim);
    font-family: var(--font-ui);
    font-size: var(--text-sm);
}
.wiki-edit-cancel:hover[b-gltvwr7e7y] { color: var(--text); }
.wiki-edit-mode[b-gltvwr7e7y] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    color: var(--text-faint);
}

.wiki-edit-titlerow[b-gltvwr7e7y] { display: flex; gap: var(--space-4); margin-bottom: 0.75rem; }
.wiki-edit-title[b-gltvwr7e7y] {
    flex: 1;
    min-width: 0;
    padding: var(--space-4) var(--space-5);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    color: var(--text);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    outline: none;
}
.wiki-edit-title:focus[b-gltvwr7e7y] { border-color: var(--accent); }

.wiki-edit-toolbar[b-gltvwr7e7y] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    background: var(--surface-3);
    border: 1px solid var(--border-soft);
    border-bottom: none;
    border-radius: var(--radius) var(--radius) 0 0;
}
.wiki-edit-toolbar > button[b-gltvwr7e7y] {
    width: 32px; height: 32px; display: grid; place-items: center;
    border: none; background: transparent; color: var(--text-dim); cursor: pointer;
    border-radius: var(--radius); font-family: var(--font-mono); font-size: var(--text-sm);
}
.wiki-edit-toolbar > button:hover[b-gltvwr7e7y] { background: var(--surface-2); color: var(--text); }
.wiki-edit-tooldiv[b-gltvwr7e7y] { width: 1px; height: 20px; background: var(--border); margin: 0 0.375rem; }
.wiki-edit-md[b-gltvwr7e7y] { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--text-faint); }

.wiki-edit-assets[b-gltvwr7e7y] {
    padding: var(--space-4);
    background: var(--surface);
    border: 1px solid var(--border-soft);
    border-bottom: none;
}

.wiki-edit-split[b-gltvwr7e7y] {
    flex: 1;
    /* fills what the page leaves it; below this the page scrolls rather than the panes shrinking */
    min-height: 20rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    border: 1px solid var(--border-soft);
    border-radius: 0 0 var(--radius) var(--radius);
    overflow: hidden;
}
.wiki-edit-textarea[b-gltvwr7e7y] {
    resize: none;
    border: none;
    outline: none;
    padding: var(--space-6) var(--space-6);
    background: var(--surface-3);
    color: var(--text);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    line-height: 1.7;
    caret-color: var(--accent);
    border-right: 1px solid var(--border-soft);
    /* fills the pane and scrolls; in an embed the pane has no height of its own, and the
       textarea grows with its content instead */
    height: 100%;
    overflow-y: auto;
    field-sizing: content;
}
.wiki-edit-preview[b-gltvwr7e7y] {
    overflow-y: auto;
    padding: var(--space-6) var(--space-6);
    background: var(--surface);
}

.wiki-edit-tags[b-gltvwr7e7y] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: 0.75rem;
}
.wiki-edit-taglabel[b-gltvwr7e7y] {
    font-family: var(--font-kicker);
    font-size: var(--text-xs);
    letter-spacing: var(--kicker-tracking);
    text-transform: uppercase;
    color: var(--text-faint);
}
.wiki-edit-tag[b-gltvwr7e7y] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    padding: var(--space-2) var(--space-2) var(--space-2) var(--space-3);
    border-radius: 99px;
    background: var(--surface-2);
    color: var(--text-dim);
    border: 1px solid var(--border);
}
.wiki-edit-tag button[b-gltvwr7e7y] {
    border: none; background: transparent; color: inherit; cursor: pointer;
    font-size: var(--text-base); line-height: 1; padding: 0 var(--space-1); opacity: 0.7;
}
.wiki-edit-tag button:hover[b-gltvwr7e7y] { opacity: 1; }
.wiki-edit-tag--fixed[b-gltvwr7e7y] { cursor: default; }
.wiki-edit-tag--fixed[b-gltvwr7e7y]  .mud-icon-root { font-size: var(--text-base); opacity: 0.7; }
.wiki-edit-taginput[b-gltvwr7e7y] {
    background: transparent; border: none; outline: none; color: var(--text);
    font-family: var(--font-ui); font-size: var(--text-sm); width: 120px;
}
.wiki-edit-taginput[b-gltvwr7e7y]::placeholder { color: var(--text-faint); }
.wiki-edit-taginput:disabled[b-gltvwr7e7y] { opacity: 0.55; cursor: not-allowed; }
.wiki-edit-pub[b-gltvwr7e7y] {
    display: inline-flex; align-items: center; gap: var(--space-3);
    font-family: var(--font-ui); font-size: var(--text-sm); color: var(--text-dim); cursor: pointer;
}

.wiki-edit-savebar[b-gltvwr7e7y] {
    gap: var(--space-5);
    margin-top: 0.75rem;
    padding: var(--space-4) var(--space-5);
    background: var(--surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius);
}
.wiki-edit-summary[b-gltvwr7e7y] {
    flex: 1;
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: 0 var(--space-4);
    background: var(--surface-3);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}
.wiki-edit-summary:focus-within[b-gltvwr7e7y] { border-color: var(--accent); }
.wiki-edit-summary input[b-gltvwr7e7y] {
    flex: 1; min-width: 0; padding: var(--space-3) 0; background: transparent; border: none; outline: none;
    color: var(--text); font-family: var(--font-ui); font-size: var(--text-sm);
}
.wiki-edit-summary input[b-gltvwr7e7y]::placeholder { color: var(--text-faint); }
.wiki-edit-delta[b-gltvwr7e7y] { font-family: var(--font-mono); font-size: var(--text-xs); white-space: nowrap; }
.wiki-edit-savediv[b-gltvwr7e7y] { width: 1px; height: 24px; background: var(--border); }
.wiki-edit-publish[b-gltvwr7e7y] {
    display: inline-flex; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-5); border-radius: var(--radius);
    border: none; cursor: pointer; background: var(--accent); color: var(--accent-on);
    font-family: var(--font-ui); font-size: var(--text-sm); font-weight: 600;
    box-shadow: 0 0 18px rgba(var(--glow), 0.25);
}
.wiki-edit-publish:hover:not(:disabled)[b-gltvwr7e7y] { filter: brightness(1.08); }
.wiki-edit-publish:disabled[b-gltvwr7e7y] { opacity: 0.6; cursor: default; }

.wiki-edit-foot[b-gltvwr7e7y] {
    display: flex;
    justify-content: space-between;
    margin-top: 0.5rem;
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    color: var(--text-faint);
}
.wiki-edit-foot a[b-gltvwr7e7y] { color: var(--accent); text-decoration: none; }
.wiki-edit-foot a:hover[b-gltvwr7e7y] { text-decoration: underline; }

@container page (max-width: 48rem) {
    .wiki-edit-split[b-gltvwr7e7y] { grid-template-columns: minmax(0, 1fr); }
    .wiki-edit-preview[b-gltvwr7e7y] { display: none; }
}

.wiki-edit-localerow[b-gltvwr7e7y] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: 0.5rem;
}

.wiki-edit-localeinput[b-gltvwr7e7y] {
    background: transparent;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 4px;
    color: var(--text-primary);
    font-size: var(--text-sm);
    padding: var(--space-2) var(--space-3);
}

.wiki-edit-inherited[b-gltvwr7e7y] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-top: 0.25rem;
    color: var(--text-faint);
    font-size: var(--text-xs);
}


/* ::: blocks that nest wrongly (MarkdownFenceCheck), listed under the editor while the author types. */
.wiki-edit-fences[b-gltvwr7e7y] {
    margin: 0.5rem 0 0;
    padding: var(--space-3) var(--space-4) var(--space-3) var(--space-7);
    border-left: 3px solid var(--warn);
    background: color-mix(in srgb, var(--warn) 8%, transparent);
    border-radius: 0 4px 4px 0;
    color: var(--text-primary);
    font-size: var(--text-sm);
}
/* /Components/WikiView.razor.rz.scp.css */
.wiki-view-edit[b-4sr3udix4l] {
    height: 100%;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
/* /Layout/AccountPanel.razor.rz.scp.css */
.account-panel[b-8s8zude64t] {
    width: 236px;
    background: var(--surface-2);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow), 0 0 0 1px rgba(var(--glow), 0.06);
    /* clip, not hidden: a hidden box still scrolls when focus moves into the submenu while the track
       is mid-slide, which pushes both levels out of view and leaves the panel empty. */
    overflow: clip;
    outline: none;
    font-family: var(--font-ui);
    /* Reduced motion arrives as a value: globals.css zeroes the spatial durations. A rule here could
       not do it — this bundle is unlayered and outranks the layered sheet that would carry it. */
    animation: account-panel-grow-b-8s8zude64t var(--motion-enter);
    transform-origin: bottom left;
}

@keyframes account-panel-grow-b-8s8zude64t {
    from {
        opacity: 0;
        transform: scale(0.92) translateY(6px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* Two levels side by side, twice the panel's width; sliding the track by -50% reveals the
   submenu. Both levels stay mounted at all times so the slide is a transform, not a re-render. */
.account-panel-track[b-8s8zude64t] {
    display: flex;
    width: 200%;
    transition: transform var(--motion-move);
    transform: translateX(0%);
}

.account-panel-track--submenu[b-8s8zude64t] {
    transform: translateX(-50%);
}

.account-panel-level[b-8s8zude64t] {
    width: 50%;
    flex-shrink: 0;
    padding: var(--space-3);
    box-sizing: border-box;
}

.account-panel-item[b-8s8zude64t] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    width: 100%;
    padding: var(--space-3) var(--space-4);
    background: none;
    border: none;
    border-radius: var(--radius);
    color: var(--text);
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    font-weight: 500;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    box-sizing: border-box;
}

.account-panel-item:hover[b-8s8zude64t] {
    background: var(--surface-3);
}

.account-panel-item--inert[b-8s8zude64t] {
    color: var(--text-faint);
    cursor: default;
}

.account-panel-item--inert:hover[b-8s8zude64t] {
    background: none;
}

.account-panel-item--danger:hover[b-8s8zude64t] {
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    color: var(--danger);
}

.account-panel-item-icon[b-8s8zude64t] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    flex-shrink: 0;
    font-size: var(--text-base);
    color: var(--text-dim);
}

.account-panel-item-label[b-8s8zude64t] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.account-panel-divider[b-8s8zude64t] {
    height: 1px;
    margin: 0.375rem 0.625rem;
    background: var(--border-soft);
}

.account-panel-back[b-8s8zude64t] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    width: 100%;
    padding: var(--space-3) var(--space-4);
    margin-bottom: 0.25rem;
    background: none;
    border: none;
    border-radius: var(--radius);
    color: var(--text-dim);
    font-family: var(--font-kicker);
    font-size: var(--text-xs);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
    box-sizing: border-box;
}

.account-panel-back:hover[b-8s8zude64t] {
    background: var(--surface-3);
    color: var(--text);
}

.account-panel-characters[b-8s8zude64t] {
    max-height: 260px;
    overflow-y: auto;
}

.account-panel-character[b-8s8zude64t] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius);
    cursor: pointer;
}

/* The name button fills the row; the row's padding stays clickable for the mouse. */
.account-panel-character-pick[b-8s8zude64t] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex: 1;
    min-width: 0;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.account-panel-character-pick:focus-visible[b-8s8zude64t] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
    border-radius: var(--radius);
}

.account-panel-character:hover[b-8s8zude64t] {
    background: var(--surface-3);
}

.account-panel-character--active[b-8s8zude64t] {
    background: rgba(var(--glow), 0.08);
}

.account-panel-character-check[b-8s8zude64t] {
    width: 14px;
    flex-shrink: 0;
    color: var(--accent);
    font-size: var(--text-sm);
    text-shadow: 0 0 6px rgba(var(--glow), 0.6);
}

.account-panel-character-name[b-8s8zude64t] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--text);
}

.account-panel-newtab[b-8s8zude64t] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    background: none;
    border: none;
    border-radius: 6px;
    color: var(--text-faint);
    cursor: pointer;
}

.account-panel-newtab:hover[b-8s8zude64t] {
    background: var(--surface);
    color: var(--accent);
}

/* The image filters quick toggle: the row is the switch; the pill only shows its state. */
.account-panel-switch[b-8s8zude64t] {
    position: relative;
    flex-shrink: 0;
    width: 32px;
    height: 18px;
    border-radius: 9px;
    background: var(--border);
    transition: background var(--motion-fade);
}

.account-panel-switch--on[b-8s8zude64t] {
    background: var(--accent);
}

.account-panel-switch-knob[b-8s8zude64t] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--switch-knob-off);
    transition: left var(--motion-spring), background var(--motion-fade);
}

.account-panel-switch--on .account-panel-switch-knob[b-8s8zude64t] {
    left: 16px;
    background: var(--accent-on);
}

.account-panel-filters[aria-disabled="true"][b-8s8zude64t] {
    cursor: progress;
}
/* /Layout/OnboardingLayout.razor.rz.scp.css */
.onboarding-shell[b-q9okc7gouz] {
    container-type: size;
    position: relative;
    height: 100vh;
    height: 100svh;
    background: linear-gradient(135deg, var(--surface-3) 0%, var(--surface) 100%);
    /* overflow-y must scroll, not hide: a definite height plus size containment means anything
       that does not fit is otherwise clipped and unreachable at short viewport heights. */
    overflow-x: hidden;
    overflow-y: auto;
}

.onboarding-glow[b-q9okc7gouz] {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 50% 40%, rgba(var(--glow), 0.08) 0%, transparent 60%);
    pointer-events: none;
}

.onboarding-body[b-q9okc7gouz] {
    position: relative;
    z-index: 1;
    min-height: 100vh;
    min-height: 100svh;
}
/* /Pages/Account.razor.rz.scp.css */
/* The characters table and the passkey list are child components (Components/Settings) sharing this page's
   vocabulary, so every rule reaches them through the page root with ::deep. */
.acct-page[b-jejntl3qrg] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    min-width: 0;
    max-width: 56rem;
}

.acct-page[b-jejntl3qrg]  .acct-section {
    padding: var(--space-5) var(--space-5) var(--space-5);
}

.acct-page[b-jejntl3qrg]  .acct-anchor {
    scroll-margin-top: 16px;
}

.acct-page[b-jejntl3qrg]  .acct-label {
    font-family: var(--font-kicker);
    font-size: var(--text-xs);
    letter-spacing: var(--kicker-tracking);
    text-transform: uppercase;
    color: var(--text-faint);
    margin-right: 0.5rem;
}

.acct-page[b-jejntl3qrg]  .acct-value {
    flex: 1;
    color: var(--text);
}

.acct-page[b-jejntl3qrg]  .acct-fields {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    flex: 1;
}

.acct-page[b-jejntl3qrg]  .acct-field-actions {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.acct-page[b-jejntl3qrg]  .acct-grow {
    flex: 1;
}

.acct-page[b-jejntl3qrg]  .acct-empty {
    font-size: var(--text-sm);
    color: var(--text-faint);
}

.acct-page[b-jejntl3qrg]  .acct-create {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: 1rem;
}

/* ── Flags ── */
.acct-page[b-jejntl3qrg]  .acct-flag {
    display: inline-block;
    margin: 0.0625rem;
    padding: var(--space-1) var(--space-3);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    border-radius: var(--radius);
    background: var(--surface-3);
    border: 1px solid var(--border);
    color: var(--accent);
}

/* ── Passkeys ── */
.acct-page[b-jejntl3qrg]  .acct-passkeys {
    list-style: none;
    margin: 0;
    padding: 0;
}

.acct-page[b-jejntl3qrg]  .acct-passkey {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--border-soft);
}

.acct-page[b-jejntl3qrg]  .acct-passkey-text {
    flex: 1;
    min-width: 0;
}

.acct-page[b-jejntl3qrg]  .acct-passkey-name {
    color: var(--text);
    overflow-wrap: anywhere;
}

.acct-page[b-jejntl3qrg]  .acct-passkey-meta {
    font-size: var(--text-sm);
    color: var(--text-faint);
}

.acct-page[b-jejntl3qrg]  .acct-passkey-icon {
    color: var(--text-dim);
}

.acct-page[b-jejntl3qrg]  .acct-passkey-rename {
    margin-bottom: 0.25rem;
}

.acct-page[b-jejntl3qrg]  .acct-passkey-add {
    margin-top: 1rem;
}

.acct-page[b-jejntl3qrg]  .acct-row {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    margin-bottom: 0.875rem;
}

.acct-page[b-jejntl3qrg]  .acct-row--password {
    align-items: flex-start;
    margin-bottom: 0.25rem;
}

/* ── Token-styled inputs (MudBlazor outlined) ── */
.acct-page[b-jejntl3qrg]  .acct-input .mud-input-outlined .mud-input-outlined-border {
    border-color: var(--border);
}

.acct-page[b-jejntl3qrg]  .acct-input .mud-input-root {
    background: var(--surface-3);
    border-radius: var(--radius);
    color: var(--text);
}

.acct-page[b-jejntl3qrg]  .acct-input input {
    color: var(--text);
}

.acct-page[b-jejntl3qrg]  .acct-input .mud-input.mud-input-focused .mud-input-outlined-border {
    border-color: var(--accent);
    border-width: 1px;
}

.acct-page[b-jejntl3qrg]  .acct-input label.mud-input-label {
    color: var(--text-faint);
}

.acct-page[b-jejntl3qrg]  .acct-input label.mud-input-label-inputcontrol.mud-input-focused {
    color: var(--accent);
}

/* ── Token-styled table ── */
.acct-page[b-jejntl3qrg]  .acct-table .mud-table-root {
    background: transparent;
}

.acct-page[b-jejntl3qrg]  .acct-table th {
    color: var(--text-faint);
    font-size: var(--text-xs);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-bottom-color: var(--border);
}

.acct-page[b-jejntl3qrg]  .acct-table td {
    color: var(--text);
    border-bottom-color: var(--border-soft);
}

.acct-page[b-jejntl3qrg]  .acct-table tr:hover td {
    background: var(--surface-2);
}

/* ── Table scroll wrapper ── */
.acct-page[b-jejntl3qrg]  .acct-table-scroll {
    overflow-x: auto;
}

@container page (max-width: 48rem) {
    .acct-page[b-jejntl3qrg]  .acct-section {
        padding: var(--space-4);
    }
    .acct-page[b-jejntl3qrg]  .acct-row, .acct-page[b-jejntl3qrg]  .acct-row--password {
        flex-direction: column;
        align-items: stretch;
    }
    .acct-page[b-jejntl3qrg]  .acct-row .mud-button-root {
        width: 100%;
    }

    .acct-page[b-jejntl3qrg]  .acct-table thead {
        display: none;
    }

    .acct-page[b-jejntl3qrg]  .acct-table tr {
        display: block;
        border-bottom: 1px solid var(--border);
        padding-block: var(--space-3);
    }

    .acct-page[b-jejntl3qrg]  .acct-table td {
        display: grid;
        grid-template-columns: minmax(0, 8rem) minmax(0, 1fr);
        gap: var(--space-3);
        border: none;
    }

    .acct-page[b-jejntl3qrg]  .acct-table td::before {
        content: attr(data-label);
        color: var(--text-dim);
        font-size: var(--text-sm);
    }
}
/* /Pages/Admin/Activity.razor.rz.scp.css */
.adm-activity-controls[b-tuia5an7nf] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-4);
}

.adm-activity-controls[b-tuia5an7nf]  .adm-activity-select {
	flex: 0 1 12rem;
}

.adm-activity-zone[b-tuia5an7nf],
.adm-activity-note[b-tuia5an7nf] {
	margin: 0;
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	color: var(--text-faint);
}

.adm-activity-note[b-tuia5an7nf] {
	padding: var(--space-3) var(--space-5) var(--space-4);
}

/* The heatmap: 7 rows of 24 cells, one hue from the card's surface to the accent. The cells shrink with
   the card; nothing scrolls sideways on a phone. */
.adm-activity-heat[b-tuia5an7nf] {
	display: grid;
	gap: var(--space-1);
	padding: var(--space-5) var(--space-5) var(--space-3);
}

.adm-activity-heat-row[b-tuia5an7nf] {
	display: grid;
	grid-template-columns: 2.6rem repeat(24, minmax(0, 1fr));
	gap: var(--space-1);
	align-items: center;
}

.adm-activity-heat-day[b-tuia5an7nf],
.adm-activity-heat-hour[b-tuia5an7nf] {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	color: var(--text-faint);
	white-space: nowrap;
}

.adm-activity-heat-cell[b-tuia5an7nf] {
	display: block;
	aspect-ratio: 1;
	min-height: 8px;
	border-radius: 3px;
	background: color-mix(in oklab, var(--accent) calc(var(--heat) * 92%), var(--surface));
	box-shadow: inset 0 0 0 1px var(--border-soft);
}

.adm-activity-legend[b-tuia5an7nf] {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	padding: var(--space-2) var(--space-5) var(--space-5);
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	color: var(--text-faint);
}

.adm-activity-legend .adm-activity-heat-cell[b-tuia5an7nf] {
	width: 14px;
}

.adm-activity-pair[b-tuia5an7nf] {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
	gap: var(--space-5);
	align-items: start;
}

@container page (max-width: 64rem) {
	.adm-activity-pair[b-tuia5an7nf] {
		grid-template-columns: minmax(0, 1fr);
	}
}

[b-tuia5an7nf] .adm-activity-table {
	background: transparent;
}

/* A retention share keeps the page's own ink; the tint stops short of the accent so the text stays legible. */
[b-tuia5an7nf] .adm-activity-share {
	background: color-mix(in oklab, var(--accent) calc(var(--heat) * 45%), transparent);
	font-variant-numeric: tabular-nums;
}

.adm-activity-mono[b-tuia5an7nf],
[b-tuia5an7nf] .adm-activity-mono {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
}

.adm-activity-dim[b-tuia5an7nf],
[b-tuia5an7nf] .adm-activity-dim {
	color: var(--text-faint);
}

.adm-activity-link[b-tuia5an7nf],
[b-tuia5an7nf] .adm-activity-link {
	color: var(--accent);
	text-decoration: none;
}

.adm-activity-dead[b-tuia5an7nf] {
	list-style: none;
	margin: 0;
	padding: var(--space-3) var(--space-5) var(--space-4);
	display: grid;
	gap: var(--space-3);
}

.adm-activity-dead li[b-tuia5an7nf] {
	display: flex;
	justify-content: space-between;
	gap: var(--space-4);
	font-size: var(--text-sm);
}
/* /Pages/Admin/AdminAccounts.razor.rz.scp.css */
.accounts-body[b-36q9bgdpxb] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--space-5) var(--space-5) var(--space-5);
}

.accounts-body[b-36q9bgdpxb]  .accounts-table {
	background: transparent;
}

@container page (max-width: 48rem) {
	.accounts-body[b-36q9bgdpxb]  .accounts-table thead {
		display: none;
	}

	.accounts-body[b-36q9bgdpxb]  .accounts-table tr {
		display: block;
		border-bottom: 1px solid var(--border);
		padding-block: var(--space-3);
	}

	.accounts-body[b-36q9bgdpxb]  .accounts-table td {
		display: grid;
		grid-template-columns: minmax(0, 8rem) minmax(0, 1fr);
		gap: var(--space-3);
		border: none;
	}

	.accounts-body[b-36q9bgdpxb]  .accounts-table td::before {
		content: attr(data-label);
		color: var(--text-dim);
		font-size: var(--text-sm);
	}

	.accounts-body[b-36q9bgdpxb]  .accounts-table td:last-child {
		grid-template-columns: minmax(0, 1fr);
	}

	.accounts-body[b-36q9bgdpxb]  .accounts-table td:last-child::before {
		content: none;
	}
}

.accounts-proof > p[b-36q9bgdpxb] {
	margin: 0;
}
/* /Pages/Admin/AdminCharacters.razor.rz.scp.css */
.adm-chars-body[b-e6h29ndd84] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--space-5) var(--space-5) var(--space-5);
}

.adm-chars-filters[b-e6h29ndd84] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-4);
}

.adm-chars-filters[b-e6h29ndd84]  .adm-chars-search {
	flex: 1 1 16rem;
}

.adm-chars-filters[b-e6h29ndd84]  .adm-chars-select,
.adm-chars-filters[b-e6h29ndd84]  .adm-chars-narrow {
	flex: 0 1 11rem;
}

.adm-chars-total[b-e6h29ndd84] {
	font-size: var(--text-sm);
	color: var(--text-faint);
}

.adm-chars-body[b-e6h29ndd84]  .adm-chars-table {
	background: transparent;
}

.adm-chars-link[b-e6h29ndd84] {
	color: var(--accent);
	text-decoration: none;
}

.adm-chars-link:hover[b-e6h29ndd84] {
	text-decoration: underline;
}

.adm-chars-dbref[b-e6h29ndd84] {
	margin-inline-start: 6px;
	font-size: var(--text-sm);
	color: var(--text-faint);
}

.adm-chars-body[b-e6h29ndd84]  .adm-chars-flags {
	font-family: var(--font-mono, monospace);
	font-size: var(--text-sm);
	overflow-wrap: anywhere;
}

.adm-chars-body[b-e6h29ndd84]  .adm-chars-pages {
	align-self: center;
}

@container page (max-width: 48rem) {
	.adm-chars-filters[b-e6h29ndd84]  .adm-chars-select,
	.adm-chars-filters[b-e6h29ndd84]  .adm-chars-narrow {
		flex: 1 1 100%;
	}

	.adm-chars-body[b-e6h29ndd84]  .adm-chars-table thead {
		display: none;
	}

	.adm-chars-body[b-e6h29ndd84]  .adm-chars-table tr {
		display: block;
		border-bottom: 1px solid var(--border);
		padding-block: var(--space-3);
	}

	.adm-chars-body[b-e6h29ndd84]  .adm-chars-table td {
		display: grid;
		grid-template-columns: minmax(0, 8rem) minmax(0, 1fr);
		gap: var(--space-3);
		border: none;
	}

	.adm-chars-body[b-e6h29ndd84]  .adm-chars-table td::before {
		content: attr(data-label);
		color: var(--text-dim);
		font-size: var(--text-sm);
	}
}
/* /Pages/Admin/AdminDiscord.razor.rz.scp.css */
.adm-discord-empty[b-h7o87b1rl4],
.adm-discord-hint[b-h7o87b1rl4] {
	margin: 0;
	padding: var(--space-5) var(--space-5) var(--space-5);
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.adm-discord-hint[b-h7o87b1rl4] {
	padding-top: var(--space-2);
}

/* the setup checklist: a tick or a ring, the step, and what to do next */
.adm-discord-steps[b-h7o87b1rl4] {
	list-style: none;
	margin: 0;
	padding: var(--space-3) var(--space-5) var(--space-2);
}

.adm-discord-step[b-h7o87b1rl4] {
	display: flex;
	align-items: flex-start;
	gap: var(--space-4);
	padding: var(--space-3) 0;
}

.adm-discord-step[b-h7o87b1rl4]  .adm-discord-step-icon {
	flex-shrink: 0;
	margin-top: 1px;
	color: var(--text-dim);
}

.adm-discord-step--done[b-h7o87b1rl4]  .adm-discord-step-icon {
	color: var(--accent);
}

.adm-discord-step-text[b-h7o87b1rl4] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	min-width: 0;
}

.adm-discord-step-title[b-h7o87b1rl4] {
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--text);
}

.adm-discord-bans[b-h7o87b1rl4] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	padding: var(--space-3) var(--space-5) 0;
}

.adm-discord-actions[b-h7o87b1rl4] {
	display: flex;
	align-items: center;
	gap: var(--space-5);
	flex-wrap: wrap;
	padding: var(--space-3) var(--space-5) var(--space-5);
	font-size: var(--text-sm);
}

.adm-discord-actions[b-h7o87b1rl4]  .adm-discord-reconnect {
	margin-left: auto;
}

.adm-discord-rows[b-h7o87b1rl4] {
	list-style: none;
	margin: 0;
	padding: 0;
}

.adm-discord-row[b-h7o87b1rl4] {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	padding: var(--space-4) var(--space-4) var(--space-4) var(--space-5);
}

.adm-discord-row:not(:first-child)[b-h7o87b1rl4] {
	border-top: 1px solid var(--border-soft);
}

.adm-discord-row-text[b-h7o87b1rl4] {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: var(--space-1);
	min-width: 0;
}

.adm-discord-row-head[b-h7o87b1rl4] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	flex-wrap: wrap;
	font-size: var(--text-sm);
	color: var(--text);
}

.adm-discord-row-head code[b-h7o87b1rl4],
.adm-discord-sub code[b-h7o87b1rl4] {
	font-family: var(--font-mono);
}

.adm-discord-name[b-h7o87b1rl4] {
	font-weight: 600;
}

.adm-discord-row-head[b-h7o87b1rl4]  .adm-discord-arrow {
	color: var(--text-dim);
}

.adm-discord-sub[b-h7o87b1rl4] {
	font-size: var(--text-sm);
	color: var(--text-dim);
	overflow-wrap: anywhere;
}

.adm-discord-sub a[b-h7o87b1rl4] {
	margin-left: 4px;
}

.adm-discord-fault[b-h7o87b1rl4] {
	color: var(--danger);
}

.adm-discord-missing[b-h7o87b1rl4] {
	margin-left: 6px;
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.adm-discord-row-actions[b-h7o87b1rl4] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	flex-shrink: 0;
}

.adm-discord-row-actions[b-h7o87b1rl4]  .adm-discord-mode {
	width: 180px;
	margin: 0;
}

/* a form under a list: its fields, then its capsule level with them */
.adm-discord-form[b-h7o87b1rl4] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-5) var(--space-5) var(--space-5);
	min-width: 0;
	flex-wrap: wrap;
}

.adm-discord-form[b-h7o87b1rl4]  .adm-discord-field {
	flex: 1 1 200px;
	min-width: 0;
	margin: 0;
}

.adm-discord-form[b-h7o87b1rl4]  .adm-discord-link,
.adm-discord-form[b-h7o87b1rl4]  .adm-discord-map {
	flex-shrink: 0;
}

/* a narrow page stacks rows and forms */
@container page (max-width: 48rem) {
	.adm-discord-row[b-h7o87b1rl4] {
		flex-direction: column;
		align-items: stretch;
	}

	.adm-discord-row-actions[b-h7o87b1rl4] {
		flex-wrap: wrap;
	}

	.adm-discord-form[b-h7o87b1rl4] {
		flex-direction: column;
		align-items: stretch;
	}

	.adm-discord-form[b-h7o87b1rl4]  .adm-discord-field {
		flex: 0 0 auto;
	}
}
/* /Pages/Admin/AdminGuests.razor.rz.scp.css */
.adm-players-body[b-i8udoroljl] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--space-5) var(--space-5) var(--space-5);
}

.adm-players-form[b-i8udoroljl] {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--space-4);
}

.adm-players-form[b-i8udoroljl]  .adm-players-name {
	max-width: 260px;
}

.adm-players-max[b-i8udoroljl] {
	font-size: var(--text-sm);
	color: var(--text-faint);
}

.adm-players-body[b-i8udoroljl]  .mud-table {
	background: transparent;
}

@container page (max-width: 48rem) {
	.adm-players-form[b-i8udoroljl]  .adm-players-name {
		max-width: none;
		flex: 1 1 100%;
	}
}
/* /Pages/Admin/AdminMedia.razor.rz.scp.css */
.adm-media-body[b-cx0h9dsjpo] {
	padding: var(--space-5) var(--space-5) var(--space-5);
	min-width: 0;
}

.adm-media-grid[b-cx0h9dsjpo] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(180px, 100%), 1fr));
	gap: var(--space-4);
}

.adm-media-card[b-cx0h9dsjpo] {
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	background: var(--surface-2);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-tile);
	transition: border-color var(--motion-fade);
}

.adm-media-card:hover[b-cx0h9dsjpo] {
	border-color: rgba(var(--glow), 0.4);
}

.adm-media-thumb[b-cx0h9dsjpo] {
	height: 120px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background: var(--surface-3);
}

.adm-media-thumb img[b-cx0h9dsjpo] {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.adm-media-thumb[b-cx0h9dsjpo]  .adm-media-kind-icon {
	font-size: var(--text-3xl);
	color: var(--text-faint);
}

.adm-media-card-body[b-cx0h9dsjpo] {
	padding: var(--space-3) var(--space-4);
}

.adm-media-name[b-cx0h9dsjpo] {
	font-size: var(--text-sm);
	color: var(--text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.adm-media-sharing[b-cx0h9dsjpo] {
	margin-top: 4px;
}

.adm-media-sharing-form[b-cx0h9dsjpo] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.adm-media-card-foot[b-cx0h9dsjpo] {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 4px;
}

.adm-media-size[b-cx0h9dsjpo] {
	font-size: var(--text-xs);
	color: var(--text-faint);
}

.adm-media-actions[b-cx0h9dsjpo] {
	display: inline-flex;
	gap: var(--space-1);
}

.adm-media-list[b-cx0h9dsjpo] {
	overflow-x: auto;
	min-width: 0;
}

.adm-media-list-thumb[b-cx0h9dsjpo] {
	width: 32px;
	height: 32px;
	object-fit: cover;
	border-radius: 4px;
}

.adm-media-list[b-cx0h9dsjpo]  .adm-media-list-icon {
	color: var(--text-faint);
}

.adm-media-list-name[b-cx0h9dsjpo] {
	font-size: var(--text-sm);
}

.adm-media-list-mono[b-cx0h9dsjpo] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text-faint);
}

.adm-media-list-dim[b-cx0h9dsjpo] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

/* the card header holds two chip groups; below the narrow tier they wrap under each other */
@container page (max-width: 48rem) {
	.adm-media[b-cx0h9dsjpo]  .kit-card-head {
		flex-wrap: wrap;
		padding-block: var(--space-3);
	}

	.adm-media[b-cx0h9dsjpo]  .kit-card-controls {
		flex-wrap: wrap;
	}
}
/* /Pages/Admin/AdminProfiles.razor.rz.scp.css */
/* inline <code> in the header description and the reset caption (both injected markup) */
.adm-profiles[b-6jy70gatwu]  code {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text);
	background: var(--surface-2);
	border-radius: 4px;
	padding: var(--space-1) var(--space-2);
}

.adm-profiles-status[b-6jy70gatwu] {
	padding: var(--space-4) var(--space-5) var(--space-4);
}

.adm-profiles-status-row[b-6jy70gatwu] {
	display: flex;
	align-items: baseline;
	gap: var(--space-4);
	padding: var(--space-2) 0;
}

.adm-profiles-status-label[b-6jy70gatwu] {
	min-width: 110px;
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: var(--kicker-tracking);
	text-transform: uppercase;
	color: var(--text-faint);
}

.adm-profiles-status-value[b-6jy70gatwu] {
	font-size: var(--text-base);
	color: var(--text);
}

.adm-profiles-attrs-head[b-6jy70gatwu] {
	display: flex;
	justify-content: space-between;
	padding: var(--space-4) var(--space-5);
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: var(--kicker-tracking);
	text-transform: uppercase;
	color: var(--text-faint);
	border-bottom: 1px solid var(--border-soft);
}

.adm-profiles-attrs-row[b-6jy70gatwu] {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-4) var(--space-5);
	border-bottom: 1px solid var(--border-soft);
}

.adm-profiles[b-6jy70gatwu]  .adm-profiles-present {
	color: var(--accent);
}

.adm-profiles-caption[b-6jy70gatwu] {
	margin: 0;
	padding: var(--space-4) var(--space-5) var(--space-5);
	font-size: var(--text-sm);
	line-height: 1.6;
	color: var(--text-dim);
}

@container page (max-width: 48rem) {
	.adm-profiles-status-row[b-6jy70gatwu] {
		flex-direction: column;
		gap: var(--space-1);
	}

	.adm-profiles-attrs-row[b-6jy70gatwu] {
		flex-wrap: wrap;
	}

	.adm-profiles-attrs-row code[b-6jy70gatwu] {
		min-width: 0;
		overflow-wrap: anywhere;
	}
}
/* /Pages/Admin/AdminRemoteBackups.razor.rz.scp.css */
.remote-backups-page[b-7q9z6en400] {
    min-width: 0;
}

.remote-backups-page[b-7q9z6en400]  .remote-backups-actions {
    flex-wrap: wrap;
    gap: var(--space-4);
}

.remote-backups-page[b-7q9z6en400]  .remote-backups-snapshot {
    font-family: var(--font-mono);
    overflow-wrap: anywhere;
}

@container page (max-width: 48rem) {
    .remote-backups-page[b-7q9z6en400]  .remote-backups-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .remote-backups-page[b-7q9z6en400]  .remote-backups-actions .mud-button-root {
        width: 100%;
    }
}
/* /Pages/Admin/AdminServer.razor.rz.scp.css */
.adm-server-note[b-w8n8o1n98z] {
	margin: 0;
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	color: var(--text-faint);
}
/* /Pages/Admin/AdminWiki.razor.rz.scp.css */
/* Pages card: namespace chips on the left, search and language on the right */
.adminwiki-filters[b-x4k2ttqll3] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4) var(--space-5);
	padding: var(--space-5) var(--space-5) var(--space-4);
}

.adminwiki-filters-fields[b-x4k2ttqll3] {
	display: flex;
	gap: var(--space-4);
	align-items: center;
	flex: 0 1 30rem;
	min-width: 0;
}

.adminwiki-filters-fields[b-x4k2ttqll3]  .adminwiki-filter--search {
	flex: 1 1 14rem;
	margin: 0;
}

.adminwiki-filters-fields[b-x4k2ttqll3]  .adminwiki-filter--locale {
	flex: 0 0 12rem;
	margin: 0;
}

/* Bulk actions, shown only while rows are selected */
.adminwiki-selection[b-x4k2ttqll3] {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	margin: 0 1rem 0.5rem;
	padding: var(--space-2) var(--space-3) var(--space-2) var(--space-5);
	border-radius: var(--radius-row);
	background: rgba(var(--glow), 0.08);
	border: 1px solid rgba(var(--glow), 0.25);
}

.adminwiki-selection-count[b-x4k2ttqll3] {
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--accent);
}

.adminwiki-selection-rule[b-x4k2ttqll3] {
	width: 1px;
	height: 1.25rem;
	margin: 0 0.25rem;
	background: rgba(var(--glow), 0.25);
}

.adminwiki-grid-scroll[b-x4k2ttqll3] {
	overflow-x: auto;
	min-width: 0;
	border-top: 1px solid var(--border);
	border-radius: 0 0 var(--radius-card) var(--radius-card);
}

.adminwiki-grid-scroll[b-x4k2ttqll3]  .mud-table {
	background: transparent;
}

.adminwiki-grid-scroll[b-x4k2ttqll3]  .mud-table-cell {
	border-bottom-color: var(--border-soft);
}

.adminwiki-title[b-x4k2ttqll3] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	min-width: 12rem;
}

.adminwiki-title-line[b-x4k2ttqll3] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.adminwiki-title[b-x4k2ttqll3]  .adminwiki-title-link {
	font-size: var(--text-base);
	font-weight: 600;
}

.adminwiki-title[b-x4k2ttqll3]  .adminwiki-lock {
	font-size: var(--text-base);
}

.adminwiki-title-ref[b-x4k2ttqll3] {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	color: var(--text-faint);
}

.adminwiki-cats[b-x4k2ttqll3] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
}

.adminwiki-cat[b-x4k2ttqll3] {
	display: inline-flex;
	align-items: center;
	height: 22px;
	padding: 0 var(--space-3);
	border-radius: 11px;
	background: var(--surface-2);
	border: 1px solid var(--border);
	color: var(--text);
	font-size: var(--text-sm);
	text-decoration: none;
	white-space: nowrap;
}

.adminwiki-cat:hover[b-x4k2ttqll3],
.adminwiki-cat:focus-visible[b-x4k2ttqll3] {
	border-color: var(--accent);
	color: var(--accent);
}

.adminwiki-updated[b-x4k2ttqll3] {
	display: flex;
	flex-direction: column;
	font-size: var(--text-sm);
	color: var(--text-dim);
	white-space: nowrap;
}

.adminwiki-rev[b-x4k2ttqll3] {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	color: var(--text-faint);
}

.admin-wiki-coverage[b-x4k2ttqll3] {
	display: inline-flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	font-size: var(--text-xs);
	color: var(--text-dim);
}

.adminwiki-locale[b-x4k2ttqll3] {
	padding: 0 var(--space-3);
	border-radius: 6px;
	background: var(--surface-2);
	font-family: var(--font-mono);
	letter-spacing: 0.02em;
}

.admin-wiki-coverage-none[b-x4k2ttqll3] {
	color: var(--mud-palette-warning);
}

.admin-wiki-coverage[b-x4k2ttqll3]  .adminwiki-untranslated {
	font-size: var(--text-base);
	opacity: 0.8;
}

.adminwiki-actions[b-x4k2ttqll3] {
	display: flex;
	justify-content: flex-end;
	gap: var(--space-1);
}

/* Categories card */
.adminwiki-newcat[b-x4k2ttqll3] {
	display: flex;
	align-items: flex-start;
	gap: var(--space-4);
	padding: var(--space-5) var(--space-5) 0;
}

.adminwiki-newcat[b-x4k2ttqll3]  .adminwiki-newcat-name {
	flex: 1 1 14rem;
	margin: 0;
}

.adminwiki-newcat[b-x4k2ttqll3]  .adminwiki-newcat-desc {
	flex: 2 1 20rem;
	margin: 0;
}

.adminwiki-newcat[b-x4k2ttqll3]  .mud-icon-button {
	margin-top: 0.125rem;
}

.adminwiki-newcat-note[b-x4k2ttqll3] {
	padding: var(--space-3) var(--space-5) 0;
	font-size: var(--text-sm);
	color: var(--warn);
}

.adminwiki-catlist[b-x4k2ttqll3] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
	gap: var(--space-3);
	padding: var(--space-5);
}

.adminwiki-catcard[b-x4k2ttqll3] {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	min-width: 0;
	padding: var(--space-1) var(--space-2) var(--space-1) var(--space-4);
	border-radius: var(--radius-row);
	background: var(--surface-2);
	border: 1px solid var(--border);
	transition: border-color var(--motion-fade);
}

.adminwiki-catcard-link[b-x4k2ttqll3] {
	display: flex;
	flex: 1;
	align-items: center;
	gap: var(--space-3);
	min-width: 0;
	padding: var(--space-3) 0;
	color: var(--text);
	text-decoration: none;
}

.adminwiki-catcard:hover[b-x4k2ttqll3],
.adminwiki-catcard:focus-within[b-x4k2ttqll3] {
	border-color: var(--accent);
}

.adminwiki-catcard[b-x4k2ttqll3]  .adminwiki-catcard-icon {
	color: var(--accent);
	font-size: var(--text-md);
}

/* in use, but no category page names it yet */
.adminwiki-catcard--nopage[b-x4k2ttqll3] {
	border-style: dashed;
	background: transparent;
}

.adminwiki-catcard--nopage[b-x4k2ttqll3]  .adminwiki-catcard-icon {
	color: var(--text-faint);
}

.adminwiki-catcard-name[b-x4k2ttqll3] {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: var(--text-sm);
}

.adminwiki-catcard-count[b-x4k2ttqll3] {
	min-width: 1.5rem;
	padding: 0 var(--space-3);
	border-radius: 9px;
	background: var(--border);
	color: var(--text-dim);
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	line-height: 1.125rem;
	text-align: center;
}

/* Permissions card: each rule is a tile; the editors inside are their own */
.adminwiki-requirements-grid[b-x4k2ttqll3] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
	align-items: start;
	gap: var(--space-4);
	padding: var(--space-5);
}

/* Dialogs */
.adminwiki-dialog-title[b-x4k2ttqll3] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	font-size: var(--text-md);
	font-weight: 600;
}

.adminwiki-dialog-kicker[b-x4k2ttqll3] {
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--text-dim);
}

.adminwiki-dialog-body[b-x4k2ttqll3] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.adminwiki-dialog-label[b-x4k2ttqll3] {
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--text-dim);
}

.adminwiki-dialog-hint[b-x4k2ttqll3] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

@container page (max-width: 48rem) {
	.adminwiki-filters-fields[b-x4k2ttqll3] {
		flex: 1 1 100%;
		flex-wrap: wrap;
	}

	.adminwiki-filters-fields[b-x4k2ttqll3]  .adminwiki-filter--locale {
		flex: 1 1 100%;
	}

	.adminwiki-newcat[b-x4k2ttqll3] {
		flex-wrap: wrap;
	}

	.adminwiki-newcat[b-x4k2ttqll3]  .adminwiki-newcat-desc {
		flex-basis: 100%;
	}
}

/* A bulk action's tooltip: what the button is called, then what it does */
.adminwiki-tip[b-x4k2ttqll3] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	max-width: 18rem;
	text-align: left;
}
/* /Pages/Admin/Applications/AdminApplications.razor.rz.scp.css */
.appadmin[b-f73xx1q49g]  .aa-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius);
    border: 1px solid var(--border);
    background: var(--surface-2);
    color: var(--text);
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    font-weight: 500;
    cursor: pointer;
    text-decoration: none;
    transition: border-color var(--motion-fade), filter var(--motion-fade);
}
.appadmin[b-f73xx1q49g]  .aa-btn:hover { border-color: rgba(var(--glow), 0.4); }
.appadmin[b-f73xx1q49g]  .aa-btn--primary {
    background: var(--accent);
    color: var(--accent-on);
    border-color: transparent;
    font-weight: 600;
    box-shadow: 0 0 18px rgba(var(--glow), 0.25);
}
.appadmin[b-f73xx1q49g]  .aa-btn--primary:hover { filter: brightness(1.08); }

.appadmin[b-f73xx1q49g]  .appadmin-grid {
    display: grid;
    grid-template-columns: 340px minmax(0, 1fr);
    gap: var(--space-5);
}
/* README §3: list and detail stay side by side at the medium tier (the design size); only narrow stacks */
@container page (max-width: 64rem) {
    .appadmin[b-f73xx1q49g]  .appadmin-grid { grid-template-columns: 280px minmax(0, 1fr); }
}
@container page (max-width: 48rem) {
    .appadmin[b-f73xx1q49g]  .appadmin-grid { grid-template-columns: minmax(0, 1fr); }
}

/* List */
.appadmin[b-f73xx1q49g]  .appadmin-list { display: flex; flex-direction: column; gap: var(--space-3); }
.aa-search[b-f73xx1q49g] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: 0 var(--space-4);
    margin-bottom: 0.25rem;
    background: var(--surface-3);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}
.aa-search:focus-within[b-f73xx1q49g] { border-color: var(--accent); }
.aa-search input[b-f73xx1q49g] {
    flex: 1; min-width: 0; padding: var(--space-3) 0; background: transparent; border: none; outline: none;
    color: var(--text); font-family: var(--font-ui); font-size: var(--text-sm);
}
.aa-search input[b-f73xx1q49g]::placeholder { color: var(--text-faint); }

.aa-grow[b-f73xx1q49g] { flex: 1; min-width: 0; }
.aa-detail-titles[b-f73xx1q49g] { display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; }

/* icon sizes (MudIcon renders an svg this page does not scope, hence ::deep) */
.appadmin[b-f73xx1q49g]  .aa-ico { font-size: var(--text-base); }
.appadmin[b-f73xx1q49g]  .aa-ico--faint { color: var(--text-faint); }
.appadmin[b-f73xx1q49g]  .aa-ico--card { font-size: var(--text-md); }
.appadmin[b-f73xx1q49g]  .aa-ico--btn { font-size: var(--text-md); }
.appadmin[b-f73xx1q49g]  .aa-ico--detail { font-size: var(--text-xl); }

.appadmin[b-f73xx1q49g]  .aa-card {
    text-align: left;
    padding: var(--space-5);
    cursor: pointer;
    background: var(--surface);
    border-radius: var(--radius-card);
    border: 1px solid var(--border);
    transition: border-color var(--motion-fade), box-shadow var(--motion-fade);
}
.appadmin[b-f73xx1q49g]  .aa-card:hover { border-color: rgba(var(--glow), 0.3); }
.appadmin[b-f73xx1q49g]  .aa-card--on {
    border-color: rgba(var(--glow), 0.45);
    box-shadow: 0 0 0 1px rgba(var(--glow), 0.25);
}
.aa-card-top[b-f73xx1q49g] { display: flex; align-items: center; gap: var(--space-4); }
.aa-card-icon[b-f73xx1q49g] {
    width: 34px; height: 34px; flex-shrink: 0; border-radius: var(--radius);
    display: grid; place-items: center;
    background: rgba(var(--glow), 0.10); border: 1px solid rgba(var(--glow), 0.22); color: var(--accent);
}
.aa-card-name[b-f73xx1q49g] {
    font-family: var(--font-display); font-size: var(--text-base); font-weight: 600; color: var(--text);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.aa-card-sub[b-f73xx1q49g] { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--text-faint); }
.aa-kind[b-f73xx1q49g] {
    font-family: var(--font-kicker); font-size: var(--text-xs); letter-spacing: 0.04em; text-transform: uppercase;
    padding: var(--space-1) var(--space-3); border-radius: 99px; flex-shrink: 0;
}
.aa-kind--page[b-f73xx1q49g] { background: color-mix(in srgb, var(--success) 12%, transparent); color: var(--success); }
.aa-kind--widget[b-f73xx1q49g] { background: color-mix(in srgb, var(--info) 12%, transparent); color: var(--info); }
.aa-kind--form[b-f73xx1q49g] { background: color-mix(in srgb, var(--special) 12%, transparent); color: var(--special); }
.aa-kind--other[b-f73xx1q49g] { background: color-mix(in srgb, var(--text) 6%, transparent); color: var(--text-dim); }
.aa-role[b-f73xx1q49g] {
    font-family: var(--font-kicker); font-size: var(--text-xs); letter-spacing: 0.04em; text-transform: uppercase;
    padding: var(--space-1) var(--space-3); border-radius: 99px; color: var(--text-dim);
    background: var(--surface-2); border: 1px solid var(--border);
}

/* The grid, the cards, the detail card and its empty state come from the shared master-detail components
   (Components/Admin), so they carry those components' scope, not this page's: hence ::deep. */
.appadmin[b-f73xx1q49g]  .appadmin-detail {
    overflow: hidden;
    align-self: start;
}
.appadmin[b-f73xx1q49g]  .aa-empty-detail {
    margin: 1.25rem;
}
.aa-detail-head[b-f73xx1q49g] {
    display: flex; align-items: flex-start; gap: var(--space-5); padding: var(--space-6) var(--space-6);
    border-bottom: 1px solid var(--border-soft);
}
.aa-detail-icon[b-f73xx1q49g] {
    width: 46px; height: 46px; flex-shrink: 0; border-radius: var(--radius);
    display: grid; place-items: center;
    background: rgba(var(--glow), 0.10); border: 1px solid rgba(var(--glow), 0.22); color: var(--accent);
}
.aa-detail-name[b-f73xx1q49g] {
    margin: 0; font-family: var(--font-display); font-size: var(--text-lg); font-weight: 600; color: var(--text);
}
.aa-detail-slug[b-f73xx1q49g] { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--accent); margin-top: 0.1875rem; }
.aa-detail-headbtns[b-f73xx1q49g] { display: flex; gap: var(--space-2); flex-shrink: 0; }
.aa-icon-btn[b-f73xx1q49g] {
    width: 32px; height: 32px; display: grid; place-items: center; border-radius: var(--radius);
    border: 1px solid var(--border); background: transparent; color: var(--text-dim); cursor: pointer;
}
.aa-icon-btn:hover[b-f73xx1q49g] { color: var(--text); border-color: rgba(var(--glow), 0.4); }
.aa-icon-btn--danger:hover[b-f73xx1q49g] { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 50%, transparent); }

.aa-meta-grid[b-f73xx1q49g] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    border-bottom: 1px solid var(--border-soft);
}
.aa-meta[b-f73xx1q49g] { padding: var(--space-5) var(--space-5); border-left: 1px solid var(--border-soft); min-width: 0; }
.aa-meta:first-child[b-f73xx1q49g] { border-left: none; }
.aa-meta-label[b-f73xx1q49g] {
    font-family: var(--font-kicker); font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase;
    color: var(--text-faint); margin-bottom: 0.375rem;
}
.aa-meta-val[b-f73xx1q49g] {
    font-family: var(--font-mono); font-size: var(--text-sm); color: var(--text);
    word-break: break-all;
}

.aa-section[b-f73xx1q49g] { padding: var(--space-5) var(--space-6); border-bottom: 1px solid var(--border-soft); }
.aa-section:last-child[b-f73xx1q49g] { border-bottom: none; }
.aa-section-label[b-f73xx1q49g] {
    font-family: var(--font-kicker); font-size: var(--text-xs); letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--text-faint); margin-bottom: 0.625rem;
}
.aa-chips[b-f73xx1q49g] { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.aa-zone[b-f73xx1q49g] {
    font-family: var(--font-mono); font-size: var(--text-xs); padding: var(--space-2) var(--space-3); border-radius: 99px;
    color: var(--info); background: color-mix(in srgb, var(--info) 12%, transparent); border: 1px solid color-mix(in srgb, var(--info) 30%, transparent);
}
.aa-actions[b-f73xx1q49g] { display: flex; gap: var(--space-3); flex-wrap: wrap; }
/* /Pages/Admin/Applications/ApplicationEditDialog.razor.rz.scp.css */
.application-edit-dialog[b-tgvdd34rfe] {
    container-type: inline-size;
}

@container (max-width: 48rem) {
    .application-edit-dialog[b-tgvdd34rfe]  .mud-grid-item-sm-6,
    .application-edit-dialog[b-tgvdd34rfe]  .mud-grid-item-sm-4 {
        flex-basis: 100%;
        max-width: 100%;
    }
}
/* /Pages/Admin/AsciiTranslations.razor.rz.scp.css */
/* Intentionally empty: this route renders a kit header and <AdminKeyValueList>, whose own
   stylesheet carries every rule and the container tiers. EveryRoutablePageHasAStylesheet
   requires the file to exist. */
/* /Pages/Admin/AuditLog.razor.rz.scp.css */
.adm-audit-body[b-59rkp7zgz1] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--space-5) var(--space-5) var(--space-5);
}

.adm-audit-filters[b-59rkp7zgz1] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-4);
}

.adm-audit-filters[b-59rkp7zgz1]  .adm-audit-select {
	flex: 0 1 14rem;
}

.adm-audit-filters[b-59rkp7zgz1]  .adm-audit-narrow {
	flex: 0 1 11rem;
}

.adm-audit-filters[b-59rkp7zgz1]  .adm-audit-wide {
	flex: 1 1 14rem;
}

.adm-audit-body[b-59rkp7zgz1]  .adm-audit-table {
	background: transparent;
}

.adm-audit-body[b-59rkp7zgz1]  .adm-audit-when {
	white-space: nowrap;
}

.adm-audit-body[b-59rkp7zgz1]  .adm-audit-mono,
.adm-audit-mono[b-59rkp7zgz1] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
}

.adm-audit-body[b-59rkp7zgz1]  .adm-audit-details {
	overflow-wrap: anywhere;
}

.adm-audit-dim[b-59rkp7zgz1] {
	display: block;
	font-size: var(--text-sm);
	color: var(--text-faint);
}

.adm-audit-link[b-59rkp7zgz1] {
	color: var(--accent);
	text-decoration: none;
}

.adm-audit-link:hover[b-59rkp7zgz1] {
	text-decoration: underline;
}

.adm-audit-body[b-59rkp7zgz1]  .adm-audit-more {
	align-self: center;
}

@container page (max-width: 48rem) {
	.adm-audit-filters[b-59rkp7zgz1]  .adm-audit-select,
	.adm-audit-filters[b-59rkp7zgz1]  .adm-audit-narrow,
	.adm-audit-filters[b-59rkp7zgz1]  .adm-audit-wide {
		flex: 1 1 100%;
	}

	.adm-audit-body[b-59rkp7zgz1]  .adm-audit-table thead {
		display: none;
	}

	.adm-audit-body[b-59rkp7zgz1]  .adm-audit-table tr {
		display: block;
		border-bottom: 1px solid var(--border);
		padding-block: var(--space-3);
	}

	.adm-audit-body[b-59rkp7zgz1]  .adm-audit-table td {
		display: grid;
		grid-template-columns: minmax(0, 8rem) minmax(0, 1fr);
		gap: var(--space-3);
		border: none;
	}

	.adm-audit-body[b-59rkp7zgz1]  .adm-audit-table td::before {
		content: attr(data-label);
		color: var(--text-dim);
		font-size: var(--text-sm);
	}
}
/* /Pages/Admin/BannedNames.razor.rz.scp.css */
/* Intentionally empty: this route renders a kit header and <AdminKeyValueList>, whose own
   stylesheet carries every rule and the container tiers. EveryRoutablePageHasAStylesheet
   requires the file to exist. */
/* /Pages/Admin/Config/ConfigFieldRow.razor.rz.scp.css */
.cfg-row[b-19o9s7f913] {
	padding: var(--space-4) var(--space-5);
}

.cfg-row:not(:first-child)[b-19o9s7f913] {
	border-top: 1px solid var(--border-soft);
}

.cfg-row--inline[b-19o9s7f913] {
	display: flex;
	align-items: center;
	gap: var(--space-5);
}

.cfg-row-text[b-19o9s7f913] {
	flex: 1 1 auto;
	min-width: 0;
}

.cfg-row-name[b-19o9s7f913] {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--space-3);
	font-size: var(--text-base);
	font-weight: 600;
	color: var(--text);
}

.cfg-row-key[b-19o9s7f913] {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	color: var(--text-faint);
}

.cfg-row-changed[b-19o9s7f913] {
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--warn);
	background: var(--warn-tint);
	border-radius: 99px;
	padding: var(--space-1) var(--space-3);
}

.cfg-row-unused[b-19o9s7f913] {
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--text-dim);
	background: var(--surface-2);
	border-radius: 99px;
	padding: var(--space-1) var(--space-3);
}

.cfg-row-help[b-19o9s7f913] {
	margin-top: 2px;
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.cfg-row-error[b-19o9s7f913] {
	margin-top: 4px;
	font-size: var(--text-sm);
	color: var(--link-missing);
}

.cfg-row-control[b-19o9s7f913] {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: var(--space-4);
}

.cfg-row--stacked .cfg-row-text[b-19o9s7f913] {
	margin-bottom: 10px;
}

.cfg-row-control--full[b-19o9s7f913] {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--space-3);
}

/* ── Switch: 44×24; on = accent track + dark knob, off = border track + light knob ── */
.cfg-switch[b-19o9s7f913] {
	width: 44px;
	height: 24px;
	flex-shrink: 0;
	padding: 0;
	border: 0;
	border-radius: 12px;
	background: var(--border);
	position: relative;
	cursor: pointer;
	transition: background var(--motion-fade);
}

/* an invisible 44px hit box around the 24px pill: README §9's touch target without a fatter switch */
.cfg-switch[b-19o9s7f913]::after {
	content: "";
	position: absolute;
	inset: -10px;
}

.cfg-switch--on[b-19o9s7f913] {
	background: var(--accent);
}

.cfg-switch:focus-visible[b-19o9s7f913] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.cfg-switch:disabled[b-19o9s7f913] {
	opacity: 0.5;
	cursor: not-allowed;
}

.cfg-switch-knob[b-19o9s7f913] {
	position: absolute;
	top: 3px;
	left: 3px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--switch-knob-off);
	transition: left var(--motion-spring), background var(--motion-fade);
}

.cfg-switch--on .cfg-switch-knob[b-19o9s7f913] {
	left: 23px;
	background: var(--accent-on);
}

/* ── Numeric: range in faint mono, then a 112px mono input ── */
.cfg-range[b-19o9s7f913] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text-faint);
	white-space: nowrap;
}

.cfg-num[b-19o9s7f913],
.cfg-text[b-19o9s7f913] {
	height: 36px;
	padding: 0 var(--space-4);
	background: var(--surface-3);
	border: 1px solid var(--border);
	border-radius: var(--radius-row);
	color: var(--text);
	font: inherit;
	font-size: var(--text-base);
	box-sizing: border-box;
}

.cfg-num[b-19o9s7f913] {
	width: 112px;
	font-family: var(--font-mono);
	text-align: right;
}

.cfg-text[b-19o9s7f913] {
	width: 100%;
	min-width: 0;
}

.cfg-row--inline .cfg-text[b-19o9s7f913] {
	width: 230px;
}

.cfg-row--inline .cfg-text--char[b-19o9s7f913] {
	width: 56px;
	text-align: center;
	font-family: var(--font-mono);
}

.cfg-num:focus-visible[b-19o9s7f913],
.cfg-text:focus-visible[b-19o9s7f913] {
	outline: 2px solid var(--accent);
	outline-offset: 1px;
	border-color: var(--accent);
}

.cfg-num[b-19o9s7f913]::placeholder,
.cfg-text[b-19o9s7f913]::placeholder {
	color: var(--text-faint);
}

.cfg-num[readonly][b-19o9s7f913],
.cfg-text[readonly][b-19o9s7f913] {
	opacity: 0.6;
}

/* ── Select pills ── */
.cfg-pills[b-19o9s7f913] {
	display: flex;
	gap: var(--space-3);
	justify-content: flex-end;
	flex-wrap: wrap;
}

.cfg-pill[b-19o9s7f913] {
	height: 30px;
	padding: 0 var(--space-4);
	border: 0;
	border-radius: 15px;
	background: var(--border);
	color: var(--text);
	font: inherit;
	font-size: var(--text-sm);
	cursor: pointer;
	transition: background var(--motion-fade);
}

.cfg-pill:focus-visible[b-19o9s7f913] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.cfg-pill--on[b-19o9s7f913] {
	background: var(--accent);
	color: var(--accent-on);
	font-weight: 700;
}


/* ── Dictionary editor ── */
.cfg-dict[b-19o9s7f913] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.cfg-dict-entry[b-19o9s7f913] {
	background: var(--surface-3);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-row);
	padding: var(--space-4);
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.cfg-dict-head[b-19o9s7f913] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.cfg-icon-btn[b-19o9s7f913] {
	width: 36px;
	height: 36px;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-row);
	border: 1px solid var(--border);
	background: transparent;
	color: var(--text-dim);
	cursor: pointer;
}

.cfg-icon-btn--danger:hover[b-19o9s7f913],
.cfg-icon-btn--danger:focus-visible[b-19o9s7f913] {
	color: var(--link-missing);
	border-color: var(--link-missing);
}

.cfg-add[b-19o9s7f913] {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: var(--space-3);
	height: 36px;
	padding: 0 var(--space-4);
	border-radius: 18px;
	border: 1px dashed var(--border);
	background: transparent;
	color: var(--text-dim);
	font: inherit;
	font-size: var(--text-sm);
	cursor: pointer;
}

.cfg-add:hover[b-19o9s7f913],
.cfg-add:focus-visible[b-19o9s7f913] {
	color: var(--accent);
	border-color: var(--accent);
}

@container page (max-width: 48rem) {
	.cfg-row--inline[b-19o9s7f913] {
		flex-direction: column;
		align-items: stretch;
		gap: var(--space-4);
	}

	.cfg-row-control[b-19o9s7f913] {
		justify-content: flex-start;
	}

	.cfg-row--inline .cfg-text[b-19o9s7f913] {
		width: 100%;
	}
}
/* /Pages/Admin/Config/ConfigIndex.razor.rz.scp.css */
.config-home[b-aj7t5bjjg4] {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--aside-w);
	gap: var(--space-5);
	align-items: start;
}

.config-home-aside[b-aj7t5bjjg4] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

.config-cat-grid[b-aj7t5bjjg4] {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-5);
}

.config-cat-card[b-aj7t5bjjg4] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--space-5);
	min-width: 0;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-card);
	color: var(--text);
	text-decoration: none;
	transition: border-color var(--motion-fade);
}

.config-cat-card:hover[b-aj7t5bjjg4] {
	border-color: rgba(var(--glow), 0.4);
}

.config-cat-card:focus-visible[b-aj7t5bjjg4] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.config-cat-head[b-aj7t5bjjg4] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
}

.config-cat-titles[b-aj7t5bjjg4] {
	min-width: 0;
}

.config-cat-title[b-aj7t5bjjg4] {
	font-size: var(--text-base);
	font-weight: 700;
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.config-cat-flag[b-aj7t5bjjg4] {
	font-size: var(--text-xs);
	font-weight: 600;
	color: var(--warn);
	background: var(--warn-tint);
	border-radius: 99px;
	padding: var(--space-1) var(--space-3);
}

.config-cat-count[b-aj7t5bjjg4] {
	font-size: var(--text-sm);
	color: var(--text-dim);
	margin-top: 1px;
}

.config-cat-desc[b-aj7t5bjjg4] {
	font-size: var(--text-sm);
	line-height: 1.45;
	color: var(--text-dim);
}

.config-cat-chips[b-aj7t5bjjg4] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	align-items: center;
}

.config-cat-chip[b-aj7t5bjjg4] {
	height: 26px;
	padding: 0 var(--space-4);
	border-radius: 13px;
	background: var(--surface-2);
	color: var(--text);
	font-size: var(--text-sm);
	display: inline-flex;
	align-items: center;
}

.config-cat-more[b-aj7t5bjjg4] {
	font-size: var(--text-sm);
	color: var(--text-dim);
	padding: 0 var(--space-2);
}

.config-home-how[b-aj7t5bjjg4] {
	margin: 0;
	font-size: var(--text-sm);
	line-height: 1.5;
	color: var(--text-dim);
}

/* README §3: main and aside stay side by side at the medium tier; only narrow stacks them */
@container page (max-width: 48rem) {
	.config-home[b-aj7t5bjjg4] {
		grid-template-columns: minmax(0, 1fr);
	}
}

@container page (max-width: 48rem) {
	.config-cat-grid[b-aj7t5bjjg4] {
		grid-template-columns: minmax(0, 1fr);
	}
}
/* /Pages/Admin/Config/DynamicConfig.razor.rz.scp.css */
.config-section[b-gm991dvcil] {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--aside-w);
	gap: var(--space-5);
	align-items: start;
}

.config-section-main[b-gm991dvcil] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	min-width: 0;
}

.config-section-content[b-gm991dvcil] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.config-section-aside[b-gm991dvcil] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	position: sticky;
	top: 12px;
}

/* ── Group: a section label above a card of rows ── */
.cfg-group[b-gm991dvcil] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	scroll-margin-top: 12px;
}

/* ── Unsaved bar (BottomBar) ── */
.config-section-main[b-gm991dvcil]  .cfg-unsaved {
	bottom: var(--bottomnav-clearance, 0px);
	z-index: 10;
}

.cfg-unsaved-row[b-gm991dvcil] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	flex-wrap: wrap;
}

.cfg-unsaved-row[b-gm991dvcil]  .cfg-unsaved-icon {
	color: var(--warn);
}

.cfg-unsaved-text[b-gm991dvcil] {
	font-size: var(--text-base);
	color: var(--text);
}

.cfg-count[b-gm991dvcil] {
	height: 22px;
	padding: 0 var(--space-3);
	border-radius: 11px;
	background: var(--warn-tint);
	color: var(--warn);
	font-size: var(--text-sm);
	font-weight: 600;
	display: inline-flex;
	align-items: center;
}

.cfg-unsaved-spacer[b-gm991dvcil] {
	flex: 1 1 auto;
}

/* ── In this section ── */
.cfg-toc-list[b-gm991dvcil] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}

.cfg-toc[b-gm991dvcil] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	height: 28px;
	padding: 0 var(--space-3) 0 var(--space-4);
	border-left: 2px solid transparent;
	color: var(--text-dim);
	font-size: var(--text-sm);
	text-decoration: none;
	border-radius: 0 6px 6px 0;
}

.cfg-toc:hover[b-gm991dvcil] {
	color: var(--text);
	background: var(--surface-2);
}

.cfg-toc:focus-visible[b-gm991dvcil] {
	outline: 2px solid var(--accent);
	outline-offset: -2px;
}

.cfg-toc--current[b-gm991dvcil] {
	color: var(--accent);
	border-left-color: var(--accent);
}

.cfg-toc-name[b-gm991dvcil] {
	flex: 1 1 auto;
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cfg-toc-count[b-gm991dvcil] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

/* README §3: main and aside stay side by side at the medium tier; only narrow stacks them */
@container page (max-width: 48rem) {
	.config-section[b-gm991dvcil] {
		grid-template-columns: minmax(0, 1fr);
	}

	.config-section-aside[b-gm991dvcil] {
		position: static;
	}
}

@container page (max-width: 48rem) {
	.cfg-unsaved-row[b-gm991dvcil]  .kit-capsule,
	.cfg-unsaved-spacer[b-gm991dvcil] {
		flex-basis: 100%;
	}
}
/* /Pages/Admin/Config/MsspConfig.razor.rz.scp.css */
/* Layout and rows follow DynamicConfig and ConfigFieldRow, whose scoped styles do not reach this page. */
.config-section[b-7jy5tsxdjl] {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--aside-w);
	gap: var(--space-5);
	align-items: start;
}

.config-section-main[b-7jy5tsxdjl] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	min-width: 0;
}

.config-section-content[b-7jy5tsxdjl] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.config-section-aside[b-7jy5tsxdjl] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	position: sticky;
	top: 12px;
}

/* ── Group: a section label above a card of rows ── */
.cfg-group[b-7jy5tsxdjl] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	scroll-margin-top: 12px;
}

/* ── Unsaved bar (BottomBar) ── */
.config-section-main[b-7jy5tsxdjl]  .cfg-unsaved {
	bottom: var(--bottomnav-clearance, 0px);
	z-index: 10;
}

.cfg-unsaved-row[b-7jy5tsxdjl] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	flex-wrap: wrap;
}

.cfg-unsaved-row[b-7jy5tsxdjl]  .cfg-unsaved-icon {
	color: var(--warn);
}

.cfg-unsaved-text[b-7jy5tsxdjl] {
	font-size: var(--text-base);
	color: var(--text);
}

.cfg-count[b-7jy5tsxdjl] {
	height: 22px;
	padding: 0 var(--space-3);
	border-radius: 11px;
	background: var(--warn-tint);
	color: var(--warn);
	font-size: var(--text-sm);
	font-weight: 600;
	display: inline-flex;
	align-items: center;
}

.cfg-unsaved-spacer[b-7jy5tsxdjl] {
	flex: 1 1 auto;
}

/* ── In this section ── */
.cfg-toc-list[b-7jy5tsxdjl] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}

.cfg-toc[b-7jy5tsxdjl] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	height: 28px;
	padding: 0 var(--space-3) 0 var(--space-4);
	border-left: 2px solid transparent;
	color: var(--text-dim);
	font-size: var(--text-sm);
	text-decoration: none;
	border-radius: 0 6px 6px 0;
}

.cfg-toc:hover[b-7jy5tsxdjl] {
	color: var(--text);
	background: var(--surface-2);
}

.cfg-toc:focus-visible[b-7jy5tsxdjl] {
	outline: 2px solid var(--accent);
	outline-offset: -2px;
}

.cfg-toc--current[b-7jy5tsxdjl] {
	color: var(--accent);
	border-left-color: var(--accent);
}

.cfg-toc-name[b-7jy5tsxdjl] {
	flex: 1 1 auto;
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cfg-toc-count[b-7jy5tsxdjl] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

/* README §3: main and aside stay side by side at the medium tier; only narrow stacks them */
@container page (max-width: 48rem) {
	.config-section[b-7jy5tsxdjl] {
		grid-template-columns: minmax(0, 1fr);
	}

	.config-section-aside[b-7jy5tsxdjl] {
		position: static;
	}
}

@container page (max-width: 48rem) {
	.cfg-unsaved-row[b-7jy5tsxdjl]  .kit-capsule,
	.cfg-unsaved-spacer[b-7jy5tsxdjl] {
		flex-basis: 100%;
	}
}

.cfg-row[b-7jy5tsxdjl] {
	padding: var(--space-4) var(--space-5);
}

.cfg-row:not(:first-child)[b-7jy5tsxdjl] {
	border-top: 1px solid var(--border-soft);
}

.cfg-row--inline[b-7jy5tsxdjl] {
	display: flex;
	align-items: center;
	gap: var(--space-5);
}

.cfg-row-text[b-7jy5tsxdjl] {
	flex: 1 1 auto;
	min-width: 0;
}

.cfg-row-name[b-7jy5tsxdjl] {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--space-3);
	font-size: var(--text-base);
	font-weight: 600;
	color: var(--text);
}

.cfg-row-key[b-7jy5tsxdjl] {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	color: var(--text-faint);
}

.cfg-row-changed[b-7jy5tsxdjl] {
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--warn);
	background: var(--warn-tint);
	border-radius: 99px;
	padding: var(--space-1) var(--space-3);
}

.cfg-row-unused[b-7jy5tsxdjl] {
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--text-dim);
	background: var(--surface-2);
	border-radius: 99px;
	padding: var(--space-1) var(--space-3);
}

.cfg-row-help[b-7jy5tsxdjl] {
	margin-top: 2px;
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.cfg-row-error[b-7jy5tsxdjl] {
	margin-top: 4px;
	font-size: var(--text-sm);
	color: var(--link-missing);
}

.cfg-row-control[b-7jy5tsxdjl] {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: var(--space-4);
}

.cfg-row--stacked .cfg-row-text[b-7jy5tsxdjl] {
	margin-bottom: 10px;
}

.cfg-row-control--full[b-7jy5tsxdjl] {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--space-3);
}

/* ── Switch: 44×24; on = accent track + dark knob, off = border track + light knob ── */
.cfg-switch[b-7jy5tsxdjl] {
	width: 44px;
	height: 24px;
	flex-shrink: 0;
	padding: 0;
	border: 0;
	border-radius: 12px;
	background: var(--border);
	position: relative;
	cursor: pointer;
	transition: background var(--motion-fade);
}

/* an invisible 44px hit box around the 24px pill: README §9's touch target without a fatter switch */
.cfg-switch[b-7jy5tsxdjl]::after {
	content: "";
	position: absolute;
	inset: -10px;
}

.cfg-switch--on[b-7jy5tsxdjl] {
	background: var(--accent);
}

.cfg-switch:focus-visible[b-7jy5tsxdjl] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.cfg-switch:disabled[b-7jy5tsxdjl] {
	opacity: 0.5;
	cursor: not-allowed;
}

.cfg-switch-knob[b-7jy5tsxdjl] {
	position: absolute;
	top: 3px;
	left: 3px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--switch-knob-off);
	transition: left var(--motion-spring), background var(--motion-fade);
}

.cfg-switch--on .cfg-switch-knob[b-7jy5tsxdjl] {
	left: 23px;
	background: var(--accent-on);
}

/* ── Numeric: range in faint mono, then a 112px mono input ── */
.cfg-range[b-7jy5tsxdjl] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text-faint);
	white-space: nowrap;
}

.cfg-num[b-7jy5tsxdjl],
.cfg-text[b-7jy5tsxdjl] {
	height: 36px;
	padding: 0 var(--space-4);
	background: var(--surface-3);
	border: 1px solid var(--border);
	border-radius: var(--radius-row);
	color: var(--text);
	font: inherit;
	font-size: var(--text-base);
	box-sizing: border-box;
}

.cfg-num[b-7jy5tsxdjl] {
	width: 112px;
	font-family: var(--font-mono);
	text-align: right;
}

.cfg-text[b-7jy5tsxdjl] {
	width: 100%;
	min-width: 0;
}

.cfg-row--inline .cfg-text[b-7jy5tsxdjl] {
	width: 230px;
}

.cfg-row--inline .cfg-text--char[b-7jy5tsxdjl] {
	width: 56px;
	text-align: center;
	font-family: var(--font-mono);
}

.cfg-num:focus-visible[b-7jy5tsxdjl],
.cfg-text:focus-visible[b-7jy5tsxdjl] {
	outline: 2px solid var(--accent);
	outline-offset: 1px;
	border-color: var(--accent);
}

.cfg-num[b-7jy5tsxdjl]::placeholder,
.cfg-text[b-7jy5tsxdjl]::placeholder {
	color: var(--text-faint);
}

.cfg-num[readonly][b-7jy5tsxdjl],
.cfg-text[readonly][b-7jy5tsxdjl] {
	opacity: 0.6;
}

/* ── Select pills ── */
.cfg-pills[b-7jy5tsxdjl] {
	display: flex;
	gap: var(--space-3);
	justify-content: flex-end;
	flex-wrap: wrap;
}

.cfg-pill[b-7jy5tsxdjl] {
	height: 30px;
	padding: 0 var(--space-4);
	border: 0;
	border-radius: 15px;
	background: var(--border);
	color: var(--text);
	font: inherit;
	font-size: var(--text-sm);
	cursor: pointer;
	transition: background var(--motion-fade);
}

.cfg-pill:focus-visible[b-7jy5tsxdjl] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.cfg-pill--on[b-7jy5tsxdjl] {
	background: var(--accent);
	color: var(--accent-on);
	font-weight: 700;
}

/* ── Dictionary editor ── */
.cfg-dict[b-7jy5tsxdjl] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.cfg-dict-entry[b-7jy5tsxdjl] {
	background: var(--surface-3);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-row);
	padding: var(--space-4);
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.cfg-dict-head[b-7jy5tsxdjl] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.cfg-icon-btn[b-7jy5tsxdjl] {
	width: 36px;
	height: 36px;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-row);
	border: 1px solid var(--border);
	background: transparent;
	color: var(--text-dim);
	cursor: pointer;
}

.cfg-icon-btn--danger:hover[b-7jy5tsxdjl],
.cfg-icon-btn--danger:focus-visible[b-7jy5tsxdjl] {
	color: var(--link-missing);
	border-color: var(--link-missing);
}

.cfg-add[b-7jy5tsxdjl] {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: var(--space-3);
	height: 36px;
	padding: 0 var(--space-4);
	border-radius: 18px;
	border: 1px dashed var(--border);
	background: transparent;
	color: var(--text-dim);
	font: inherit;
	font-size: var(--text-sm);
	cursor: pointer;
}

.cfg-add:hover[b-7jy5tsxdjl],
.cfg-add:focus-visible[b-7jy5tsxdjl] {
	color: var(--accent);
	border-color: var(--accent);
}

@container page (max-width: 48rem) {
	.cfg-row--inline[b-7jy5tsxdjl] {
		flex-direction: column;
		align-items: stretch;
		gap: var(--space-4);
	}

	.cfg-row-control[b-7jy5tsxdjl] {
		justify-content: flex-start;
	}

	.cfg-row--inline .cfg-text[b-7jy5tsxdjl] {
		width: 100%;
	}
}

/* ── MSSP: rows the server reports are greyed and say where the value comes from ── */
.mssp-row--server .cfg-row-name[b-7jy5tsxdjl],
.mssp-row--server .cfg-row-help[b-7jy5tsxdjl] {
	color: var(--text-dim);
}

.cfg-text.mssp-locked[b-7jy5tsxdjl] {
	cursor: not-allowed;
	background: transparent;
	border-style: dashed;
	color: var(--text-dim);
	-webkit-text-fill-color: var(--text-dim);
}

.mssp-source[b-7jy5tsxdjl] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	margin-top: 4px;
	font-size: var(--text-sm);
	color: var(--text-faint);
}

.mssp-source code[b-7jy5tsxdjl] {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
}

.mssp-source a[b-7jy5tsxdjl] {
	color: var(--accent);
}

a.cfg-icon-btn[b-7jy5tsxdjl] {
	text-decoration: none;
}

a.cfg-icon-btn:hover[b-7jy5tsxdjl],
a.cfg-icon-btn:focus-visible[b-7jy5tsxdjl] {
	color: var(--accent);
	border-color: var(--accent);
}

.cfg-pills--start[b-7jy5tsxdjl] {
	justify-content: flex-start;
}

.mssp-other-name[b-7jy5tsxdjl] {
	font-family: var(--font-mono);
	text-transform: uppercase;
}

/* ── What crawlers see ── */
.mssp-report[b-7jy5tsxdjl] {
	display: flex;
	flex-direction: column;
	margin: 0;
	font-family: var(--font-mono);
	font-size: var(--text-sm);
}

.mssp-report dt[b-7jy5tsxdjl] {
	font-size: var(--text-xs);
	letter-spacing: 0.04em;
	color: var(--text-faint);
}

.mssp-report dd[b-7jy5tsxdjl] {
	margin: 0 0 8px;
	color: var(--text);
	overflow-wrap: anywhere;
}

/* "Not reported" is the absence of a value, so picking it does not light up like a value does. */
.cfg-pill--none.cfg-pill--on[b-7jy5tsxdjl] {
	background: transparent;
	color: var(--text-dim);
	font-weight: 600;
	box-shadow: inset 0 0 0 1px var(--border);
}
/* /Pages/Admin/Config/SignInProvider.razor.rz.scp.css */
/* Provider registrations contain long callback URLs and opaque client identifiers. Keep these
   readable within the configuration column and narrow phone viewports without horizontal scroll. */
.config-section-page[b-4i8p88pji2] {
    min-width: 0;
    max-width: 100%;
}

.config-section-page p[b-4i8p88pji2],
.config-section-page code[b-4i8p88pji2],
.config-section-page a[b-4i8p88pji2] {
    overflow-wrap: anywhere;
}

.config-section-page code[b-4i8p88pji2] {
    white-space: normal;
}

.config-section-page[b-4i8p88pji2]  .mud-input-control,
.config-section-page[b-4i8p88pji2]  .mud-input-slot {
    min-width: 0;
    max-width: 100%;
}

@container page (max-width: 48rem) {
    .config-section-page[b-4i8p88pji2]  .mud-checkbox {
        align-items: flex-start;
    }
}
/* /Pages/Admin/Dashboard.razor.rz.scp.css */
.adm-dash-grid[b-duamzfcqvh] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr));
	gap: var(--space-5);
}

/* MudAlert renders its own root, so the scoped selector has to reach through. */
.adm-dash[b-duamzfcqvh]  .adm-dash-setup {
	margin-bottom: 14px;
}

.adm-dash[b-duamzfcqvh]  .adm-dash-setup-link {
	margin-left: 0.5rem;
	color: var(--accent);
	font-weight: 600;
}

.adm-dash-checklist[b-duamzfcqvh] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--space-6);
	border: 1px solid var(--border);
	border-left: 3px solid var(--accent);
	border-radius: var(--radius);
	background: var(--surface);
}

.adm-dash-checklist h2[b-duamzfcqvh] {
	margin: 0;
	font-size: var(--text-lg);
}

.adm-dash-checklist p[b-duamzfcqvh] {
	margin: 0;
	max-width: 70ch;
	line-height: 1.6;
}

.adm-dash-checklist-continue[b-duamzfcqvh] {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 var(--space-6);
	border-radius: var(--radius);
	background: var(--accent);
	color: var(--accent-on);
	font-weight: 600;
	text-decoration: none;
}

.adm-dash-guide a[b-duamzfcqvh] {
	color: var(--accent);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.adm-dash-group[b-duamzfcqvh] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}
/* /Pages/Admin/GameMessages.razor.rz.scp.css */
.adm-msg-source[b-hs8ujd215w] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--space-5) var(--space-5) var(--space-5);
}

.adm-msg-source-choices[b-hs8ujd215w] {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--space-4);
}

.adm-msg-choice[b-hs8ujd215w] {
	display: flex;
	align-items: flex-start;
	gap: var(--space-4);
	padding: var(--space-4) var(--space-4);
	border: 1px solid var(--border);
	border-radius: var(--radius-row);
	background: var(--surface-2);
	color: var(--text);
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.adm-msg-choice--on[b-hs8ujd215w] {
	border-color: var(--accent);
	box-shadow: 0 0 0 1px var(--accent) inset;
}

.adm-msg-choice:focus-visible[b-hs8ujd215w] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.adm-msg-choice:disabled[b-hs8ujd215w] {
	cursor: default;
	opacity: 0.7;
}

.adm-msg-choice-text[b-hs8ujd215w] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}

.adm-msg-choice-label[b-hs8ujd215w] {
	font-weight: 600;
}

.adm-msg-choice-hint[b-hs8ujd215w],
.adm-msg-hint[b-hs8ujd215w] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.adm-msg-source-status[b-hs8ujd215w] {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--space-2) var(--space-4);
	font-size: var(--text-sm);
}

.adm-msg-layout[b-hs8ujd215w] {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	gap: var(--space-5);
	align-items: start;
}

.adm-msg-list[b-hs8ujd215w] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.adm-msg-item[b-hs8ujd215w] {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-2);
	padding: var(--space-3) var(--space-4);
	border: 1px solid transparent;
	border-radius: var(--radius-row);
	background: transparent;
	color: var(--text-dim);
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.adm-msg-item:hover[b-hs8ujd215w] {
	background: var(--surface-2);
	color: var(--text);
}

.adm-msg-item--current[b-hs8ujd215w] {
	border-color: var(--border);
	background: var(--surface-2);
	color: var(--text);
}

.adm-msg-item:focus-visible[b-hs8ujd215w] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.adm-msg-item-title[b-hs8ujd215w] {
	font-weight: 600;
}

.adm-msg-item-tags[b-hs8ujd215w] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
}

.adm-msg-tag[b-hs8ujd215w] {
	padding: 0 var(--space-3);
	border-radius: 6px;
	background: var(--surface-3);
	color: var(--text-dim);
	font-size: var(--text-xs);
}

.adm-msg-tag--object[b-hs8ujd215w] {
	font-family: var(--font-mono);
	color: var(--accent);
}

.adm-msg-tag--dirty[b-hs8ujd215w] {
	background: var(--warn-tint);
	color: var(--warn);
}

.adm-msg-body[b-hs8ujd215w] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	padding: var(--space-5) var(--space-5) var(--space-5);
	min-width: 0;
}

.adm-msg-editor[b-hs8ujd215w] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	min-width: 0;
}

/* The field is a terminal: monospace, one line per line, on the terminal's own dark ground. */
.adm-msg-editor[b-hs8ujd215w]  .adm-msg-input,
.adm-msg-preview[b-hs8ujd215w] {
	width: 100%;
	margin: 0;
	padding: var(--space-4) var(--space-4);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--surface-3);
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	line-height: 1.35;
	tab-size: 8;
}

.adm-msg-editor[b-hs8ujd215w]  .adm-msg-input {
	resize: vertical;
	color: var(--text);
}

.adm-msg-editor[b-hs8ujd215w]  .adm-msg-input:focus {
	outline: none;
	border-color: var(--accent);
}

.adm-msg-actions[b-hs8ujd215w] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3);
}

.adm-msg-spacer[b-hs8ujd215w] {
	flex: 1;
}

.adm-msg-actions[b-hs8ujd215w]  .adm-msg-tool {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--surface-2);
	color: var(--text);
	cursor: pointer;
}

.adm-msg-preview-block[b-hs8ujd215w] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	min-width: 0;
}

.adm-msg-preview-label[b-hs8ujd215w] {
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--text-dim);
}

.adm-msg-preview[b-hs8ujd215w] {
	overflow-x: auto;
	white-space: pre;
	color: var(--text);
}

.adm-msg-preview--empty[b-hs8ujd215w] {
	color: var(--text-faint);
	font-family: var(--font-ui);
	white-space: normal;
}

@container page (max-width: 48rem) {
	.adm-msg-layout[b-hs8ujd215w] {
		grid-template-columns: minmax(0, 1fr);
	}

	.adm-msg-list[b-hs8ujd215w] {
		flex-direction: row;
		overflow-x: auto;
		padding-bottom: var(--space-2);
	}

	.adm-msg-item[b-hs8ujd215w] {
		flex: 0 0 auto;
	}
}
/* /Pages/Admin/ImportConfig.razor.rz.scp.css */
.impcfg-body[b-i5yhohhni1] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--space-5) var(--space-5) var(--space-5);
	min-width: 0;
}

/* the drop zone is a KitCard, so its root carries the card's scope, not this page's */
.impcfg-stack[b-i5yhohhni1]  .impcfg-dropzone {
	border-style: dashed;
}

.impcfg-dropzone-inner[b-i5yhohhni1] {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--space-3);
	min-height: 130px;
	text-align: center;
}

.impcfg-dropzone-inner[b-i5yhohhni1]  .impcfg-dropzone-icon {
	font-size: var(--text-3xl);
	color: var(--accent);
}

.impcfg-dropzone-title[b-i5yhohhni1] {
	font-size: var(--text-base);
	font-weight: 700;
	color: var(--text);
}

.impcfg-dropzone-hint[b-i5yhohhni1] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.impcfg-file-row[b-i5yhohhni1] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
}

.impcfg-file-row[b-i5yhohhni1]  .impcfg-file-icon {
	font-size: var(--text-lg);
	color: var(--accent);
}

.impcfg-file-name[b-i5yhohhni1] {
	font-family: var(--font-mono);
	font-size: var(--text-base);
	color: var(--text);
}

.impcfg-file-size[b-i5yhohhni1] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text-faint);
}

.impcfg-body[b-i5yhohhni1]  .impcfg-preview .mud-expand-panel {
	background: var(--surface-2);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-tile);
}

.impcfg-preview-title[b-i5yhohhni1] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	color: var(--text);
}

.impcfg-body[b-i5yhohhni1]  .impcfg-preview-text textarea {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	line-height: 1.5;
}

.impcfg-actions[b-i5yhohhni1] {
	display: flex;
	justify-content: space-between;
	gap: var(--space-4);
	margin-top: 6px;
}

@container page (max-width: 48rem) {
	.impcfg-file-row[b-i5yhohhni1] {
		flex-wrap: wrap;
	}

	.impcfg-file-name[b-i5yhohhni1] {
		min-width: 0;
		overflow-wrap: anywhere;
	}

	.impcfg-actions[b-i5yhohhni1] {
		flex-direction: column-reverse;
	}

	.impcfg-actions[b-i5yhohhni1]  .kit-capsule {
		justify-content: center;
	}
}
/* /Pages/Admin/ImportDatabase.razor.rz.scp.css */
.dbimport-body[b-lwsiqz7j6m] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--space-5) var(--space-5) var(--space-5);
}

/* the drop zone is a KitCard, so its root carries the card's scope, not this page's */
.dbimport-page[b-lwsiqz7j6m]  .dbimport-dropzone {
	border-style: dashed;
}

.dbimport-dropzone-inner[b-lwsiqz7j6m] {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--space-3);
	min-height: 140px;
}

.dbimport-dropzone-inner[b-lwsiqz7j6m]  .dbimport-dropzone-icon {
	font-size: var(--text-3xl);
	color: var(--accent);
}

.dbimport-dropzone-title[b-lwsiqz7j6m] {
	font-size: var(--text-base);
	font-weight: 700;
	color: var(--text);
}

.dbimport-dropzone-hint[b-lwsiqz7j6m] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.dbimport-body[b-lwsiqz7j6m]  .dbimport-label {
	padding: var(--space-3) 0 0;
}

.dbimport-body[b-lwsiqz7j6m]  .dbimport-label-error {
	color: var(--mud-palette-error);
}

.dbimport-body[b-lwsiqz7j6m]  .dbimport-label-warning {
	color: var(--warn);
}

/* A rewritten attribute's line names an object, an attribute and softcode, so it reads as code. */
.dbimport-rewrites[b-lwsiqz7j6m] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	margin-top: 8px;
}

.dbimport-rewrite-note[b-lwsiqz7j6m] {
	cursor: pointer;
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	overflow-wrap: anywhere;
}

.dbimport-rewrite-label[b-lwsiqz7j6m] {
	font-size: var(--text-sm);
	margin: 8px 0 2px 16px;
	opacity: 0.75;
}

.dbimport-rewrite-code[b-lwsiqz7j6m] {
	background: var(--surface-2);
	border-radius: 4px;
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	margin: 0 0 0 16px;
	padding: var(--space-3) var(--space-3);
	white-space: pre-wrap;
	overflow-wrap: anywhere;
}

/* Said in place of the file row while no mush.cnf is chosen: what leaving it out means. */
.dbimport-config-hint[b-lwsiqz7j6m] {
	font-size: var(--text-sm);
	line-height: 1.5;
	color: var(--text-dim);
}

.dbimport-file-row[b-lwsiqz7j6m] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
}

.dbimport-file-row[b-lwsiqz7j6m]  .dbimport-file-icon {
	font-size: var(--text-lg);
	color: var(--accent);
}

.dbimport-file-name[b-lwsiqz7j6m] {
	font-size: var(--text-base);
	color: var(--text);
}

.dbimport-file-size[b-lwsiqz7j6m] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text-faint);
}

.dbimport-actions[b-lwsiqz7j6m] {
	display: flex;
	justify-content: space-between;
	gap: var(--space-4);
	margin-top: 6px;
}

.dbimport-actions-start[b-lwsiqz7j6m] {
	justify-content: flex-start;
}

.dbimport-actions[b-lwsiqz7j6m]  .dbimport-cancel {
	color: var(--mud-palette-error);
}

.dbimport-progress-caption[b-lwsiqz7j6m] {
	text-align: center;
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.dbimport-grid[b-lwsiqz7j6m] {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
	gap: var(--space-4);
}

.dbimport-tile[b-lwsiqz7j6m] {
	background: var(--surface-2);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-tile);
	padding: var(--space-4) var(--space-5);
}

.dbimport-tile-wide[b-lwsiqz7j6m] {
	grid-column: 1 / -1;
}

.dbimport-stat-list[b-lwsiqz7j6m] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.dbimport-stat[b-lwsiqz7j6m] {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: var(--space-4);
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.dbimport-stat strong[b-lwsiqz7j6m] {
	font-family: var(--font-mono);
	font-size: var(--text-base);
	font-weight: 600;
	color: var(--text);
}

/* Routine notes, folded away under the warnings. */
.dbimport-notes-summary[b-lwsiqz7j6m] {
	cursor: pointer;
	font-size: var(--text-sm);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--text-dim);
}

.dbimport-notes[open] .dbimport-notes-summary[b-lwsiqz7j6m] {
	margin-bottom: 8px;
}

.dbimport-note-list[b-lwsiqz7j6m] {
	margin: 8px 0 0;
	padding-left: var(--space-5);
	font-size: var(--text-sm);
	color: var(--text-dim);
	overflow-wrap: anywhere;
}

/* One row per import: the file, the server it came from, when, and where it stands. */
.dbimport-sessions[b-lwsiqz7j6m] {
	display: flex;
	flex-direction: column;
	padding: var(--space-3) var(--space-3) var(--space-4);
}

.dbimport-session[b-lwsiqz7j6m] {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, 1fr);
	gap: var(--space-4);
	align-items: baseline;
	padding: var(--space-3);
	border: 0;
	border-radius: var(--radius-tile);
	background: none;
	color: var(--text-dim);
	font: inherit;
	font-size: var(--text-sm);
	text-align: left;
	cursor: pointer;
}

.dbimport-session:hover[b-lwsiqz7j6m],
.dbimport-session:focus-visible[b-lwsiqz7j6m] {
	background: var(--surface-2);
}

.dbimport-session-file[b-lwsiqz7j6m] {
	color: var(--text);
	font-weight: 600;
	overflow-wrap: anywhere;
}

.dbimport-session-started[b-lwsiqz7j6m] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
}

@container page (max-width: 48rem) {
	.dbimport-session[b-lwsiqz7j6m] {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: var(--space-1) var(--space-4);
	}

	.dbimport-file-row[b-lwsiqz7j6m] {
		flex-wrap: wrap;
	}

	.dbimport-file-name[b-lwsiqz7j6m] {
		min-width: 0;
		overflow-wrap: anywhere;
	}

	.dbimport-actions[b-lwsiqz7j6m] {
		flex-direction: column-reverse;
	}

	.dbimport-actions[b-lwsiqz7j6m]  .kit-capsule {
		justify-content: center;
	}
}

/* One group per kind of warning; a warning that needs action carries a label ahead of its text. */
.dbimport-warning-group[b-lwsiqz7j6m] {
	margin-top: 10px;
}

.dbimport-warning-kind[b-lwsiqz7j6m] {
	margin: 0;
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--text);
}

.dbimport-warning-list[b-lwsiqz7j6m] {
	margin: 4px 0 0;
	padding-left: var(--space-5);
	font-size: var(--text-sm);
	color: var(--warn);
	overflow-wrap: anywhere;
}

.dbimport-warning[b-lwsiqz7j6m] {
	margin: 2px 0;
}

.dbimport-needs-action[b-lwsiqz7j6m] {
	margin-right: 6px;
	padding: 0 var(--space-3);
	border: 1px solid var(--warn);
	border-radius: 4px;
	font-size: var(--text-xs);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
}
/* /Pages/Admin/Jobs/AdminJobs.razor.rz.scp.css */
/* README §3: main and aside stay side by side at the medium tier; only narrow stacks them */
.jobs-layout[b-77lntwadjs] {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--aside-w);
	gap: var(--space-5);
	align-items: start;
}

.jobs-main[b-77lntwadjs] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	min-width: 0;
}

.jobs-aside[b-77lntwadjs] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

.jobs-form[b-77lntwadjs],
.jobs-list[b-77lntwadjs] {
	display: grid;
	gap: var(--space-4);
	padding: var(--space-5) var(--space-5) var(--space-5);
	min-width: 0;
}

.jobs-entry[b-77lntwadjs] {
	display: grid;
	gap: var(--space-3);
	min-width: 0;
	padding: var(--space-4) 0;
	border-top: 1px solid var(--border-soft);
}

.jobs-entry:first-of-type[b-77lntwadjs] {
	border-top: 0;
}

.jobs-entry-title[b-77lntwadjs] {
	margin: 0;
	font-size: var(--text-base);
	font-weight: 700;
	color: var(--text);
}

.jobs-entry code[b-77lntwadjs] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text-faint);
	overflow-wrap: anywhere;
}

.jobs-entry-line[b-77lntwadjs] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text);
}

.jobs-entry-meta[b-77lntwadjs] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.jobs-actions[b-77lntwadjs] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
}

.jobs-help[b-77lntwadjs] {
	margin: 0;
	font-size: var(--text-sm);
	line-height: 1.5;
	color: var(--text-dim);
}

@container page (max-width: 48rem) {
	.jobs-layout[b-77lntwadjs] {
		grid-template-columns: minmax(0, 1fr);
	}

	.jobs-actions[b-77lntwadjs] {
		flex-direction: column;
	}

	.jobs-actions[b-77lntwadjs]  button {
		width: 100%;
	}
}
/* /Pages/Admin/KitPreview.razor.rz.scp.css */
.kit-preview[b-r78289vokk] {
	display: grid;
	grid-template-columns: var(--side-w) minmax(0, 1fr) var(--aside-w);
	grid-template-areas:
		"head head head"
		"side main aside";
	gap: var(--space-5);
	padding: var(--cpad);
}

.kit-preview-head[b-r78289vokk] {
	grid-area: head;
}

.kit-preview-side[b-r78289vokk] {
	grid-area: side;
	background: var(--surface-3);
	border-radius: var(--radius-card);
	padding: var(--space-4) var(--space-3);
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	align-self: start;
}

.kit-preview-collapsed[b-r78289vokk] {
	margin-top: 12px;
	padding: var(--space-3);
	border-radius: 12px;
	background: var(--surface-3);
	border: 1px solid var(--border-soft);
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.kit-preview-main[b-r78289vokk] {
	grid-area: main;
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	min-width: 0;
}

.kit-preview-aside[b-r78289vokk] {
	grid-area: aside;
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	align-self: start;
}

.kit-preview-grid[b-r78289vokk] {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-4);
}

.kit-preview-stack[b-r78289vokk] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.kit-preview-pills[b-r78289vokk] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
}

.kit-preview-prose[b-r78289vokk] {
	font-size: var(--text-base);
	line-height: 1.6;
	padding: var(--space-4) var(--space-5);
}

.kit-preview-compose[b-r78289vokk] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
}

.kit-preview-input[b-r78289vokk] {
	flex: 1 1 auto;
	min-width: 0;
	height: 40px;
	padding: 0 var(--space-4);
	border: 1px solid var(--border);
	border-radius: var(--radius-row);
	background: var(--surface);
	color: var(--text);
	font: inherit;
	font-size: var(--text-base);
}

.kit-preview-input[b-r78289vokk]::placeholder {
	color: var(--text-faint);
}

@container page (max-width: 64rem) {
	.kit-preview[b-r78289vokk] {
		grid-template-columns: var(--side-w) minmax(0, 1fr);
		grid-template-areas:
			"head head"
			"side main"
			"aside aside";
	}
}

@container page (max-width: 48rem) {
	.kit-preview[b-r78289vokk] {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"head"
			"side"
			"main"
			"aside";
	}
}
/* /Pages/Admin/Layout/AdminLayouts.razor.rz.scp.css */
.laybrowse-grid[b-2y1ervvg35] { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: var(--space-5); }
.lay-card[b-2y1ervvg35] {
    display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; padding: var(--space-5);
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card);
    color: var(--text); text-decoration: none; transition: border-color var(--motion-fade);
}
.lay-card:hover[b-2y1ervvg35] { border-color: rgba(var(--glow), 0.4); }
.lay-card:focus-visible[b-2y1ervvg35] { outline: 2px solid var(--accent); outline-offset: 2px; }
.lay-card-top[b-2y1ervvg35] { display: flex; align-items: center; gap: var(--space-4); }
.lay-card-titles[b-2y1ervvg35] { flex: 1; min-width: 0; }
.lay-card-name[b-2y1ervvg35] { font-size: var(--text-base); font-weight: 700; color: var(--text); }
.lay-card-desc[b-2y1ervvg35] { font-size: var(--text-sm); color: var(--text-dim); line-height: 1.45; }
.lay-card-zones[b-2y1ervvg35] { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.lay-zone[b-2y1ervvg35] {
    height: 26px; padding: 0 var(--space-4); border-radius: 13px; display: inline-flex; align-items: center;
    background: var(--surface-2); color: var(--text); font-size: var(--text-sm);
}
.lay-badge[b-2y1ervvg35] {
    font-size: var(--text-xs); font-weight: 600; padding: var(--space-1) var(--space-3); border-radius: 99px; flex-shrink: 0;
    color: var(--text-dim); background: var(--surface-2);
}
.lay-badge--on[b-2y1ervvg35] { color: var(--accent); background: rgba(var(--glow), 0.12); }

@container page (max-width: 48rem) {
    .lay-card[b-2y1ervvg35] { padding: var(--space-4) var(--space-5); }
}
/* /Pages/Admin/Layout/LayoutEditor.razor.rz.scp.css */
.layedit-back[b-ktj1bvgm5n] {
    display: inline-flex; align-items: center; gap: var(--space-2); align-self: flex-start; margin-bottom: -10px;
    font-family: var(--font-mono); font-size: var(--text-xs); color: var(--text-faint); text-decoration: none;
}
.layedit-back:hover[b-ktj1bvgm5n] { color: var(--accent); }
.layedit-back[b-ktj1bvgm5n]  .layedit-back-icon { font-size: var(--text-sm); }

.layedit[b-ktj1bvgm5n]  .le-board { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: var(--space-5); }
/* README §3: at 1280px with the page sidebar open the page is 976px (the medium tier); the palette stays beside
   the zones there. Only the narrow tier stacks it, and then as wrapping chips so the zones stay in reach. */
@container page (max-width: 48rem) {
    .layedit[b-ktj1bvgm5n]  .le-board { grid-template-columns: minmax(0, 1fr); }
    .layedit[b-ktj1bvgm5n]  .le-palette-zone { flex-direction: row; flex-wrap: wrap; }
}

.le-palette[b-ktj1bvgm5n] {
    background: var(--surface); border: 1px solid var(--border-soft); border-radius: var(--radius-lg);
    padding: var(--space-5); align-self: start;
}
.le-panel-label[b-ktj1bvgm5n] {
    font-family: var(--font-kicker); font-size: var(--text-xs); letter-spacing: var(--kicker-tracking); text-transform: uppercase;
    color: var(--text-faint); margin-bottom: 0.625rem;
}
.layedit[b-ktj1bvgm5n]  .le-palette-zone { display: flex; flex-direction: column; gap: var(--space-3); min-height: 40px; }
.le-hint[b-ktj1bvgm5n] { font-family: var(--font-ui); font-size: var(--text-xs); color: var(--text-faint); margin-top: 0.625rem; line-height: 1.5; }
.le-settings[b-ktj1bvgm5n] { display: flex; flex-direction: column; gap: var(--space-3); }
.le-toggle[b-ktj1bvgm5n] { display: flex; align-items: center; gap: var(--space-3); font-family: var(--font-ui); font-size: var(--text-sm); color: var(--text-dim); cursor: pointer; }

.le-zones[b-ktj1bvgm5n] { display: flex; flex-direction: column; gap: var(--space-5); }
.le-zone[b-ktj1bvgm5n] { background: var(--surface); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); overflow: hidden; }
.le-zone-head[b-ktj1bvgm5n] {
    display: flex; align-items: center; gap: var(--space-3); padding: var(--space-4) var(--space-5); border-bottom: 1px solid var(--border-soft);
    font-family: var(--font-kicker); font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-dim);
}
.layedit[b-ktj1bvgm5n]  .le-zone-drop { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-5); min-height: 64px; }
.layedit[b-ktj1bvgm5n]  .le-zone-drop--grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: var(--space-4); }
.le-zone-hint[b-ktj1bvgm5n] {
    font-family: var(--font-kicker); font-size: var(--text-xs); letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--text-faint); margin-left: auto; padding: var(--space-1) var(--space-3); border-radius: 99px;
    background: var(--surface-2); border: 1px solid var(--border);
}
/* Grid spans for items inside a grid drop zone (applied to .mud-drop-item via ItemsClassSelector). */
.layedit[b-ktj1bvgm5n]  .le-span-1 { grid-column: span 1; } .layedit[b-ktj1bvgm5n]  .le-span-2 { grid-column: span 2; } .layedit[b-ktj1bvgm5n]  .le-span-3 { grid-column: span 3; }
.layedit[b-ktj1bvgm5n]  .le-span-4 { grid-column: span 4; } .layedit[b-ktj1bvgm5n]  .le-span-5 { grid-column: span 5; } .layedit[b-ktj1bvgm5n]  .le-span-6 { grid-column: span 6; }
.layedit[b-ktj1bvgm5n]  .le-span-7 { grid-column: span 7; } .layedit[b-ktj1bvgm5n]  .le-span-8 { grid-column: span 8; } .layedit[b-ktj1bvgm5n]  .le-span-9 { grid-column: span 9; }
.layedit[b-ktj1bvgm5n]  .le-span-10 { grid-column: span 10; } .layedit[b-ktj1bvgm5n]  .le-span-11 { grid-column: span 11; } .layedit[b-ktj1bvgm5n]  .le-span-12 { grid-column: span 12; }
@container page (max-width: 48rem) {
    .layedit[b-ktj1bvgm5n]  .le-zone-drop--grid { grid-template-columns: 1fr; }
    .layedit[b-ktj1bvgm5n]  .le-zone-drop--grid > .mud-drop-item { grid-column: 1 / -1; }
    .layedit[b-ktj1bvgm5n]  .mud-dropitem-placeholder { grid-column: 1 / -1; }
    /* Every widget is full width here, so there is no width left to drag. Keyboard resize still works. */
    .le-resize[b-ktj1bvgm5n] { display: none; }
}

.le-span-num[b-ktj1bvgm5n] {
    font-family: var(--font-mono); font-size: var(--text-xs); color: var(--text-dim);
    min-width: 16px; text-align: center; padding: var(--space-1) var(--space-2); border-radius: 4px;
    background: var(--surface); border: 1px solid var(--border);
}
.le-item--resizing .le-span-num[b-ktj1bvgm5n] { color: var(--accent); border-color: rgba(var(--glow), 0.5); }

/* The width grip: a hit strip on the edge it moves. Hidden until the row is hovered or the grip is
   focused, so a zone full of widgets does not read as a row of handles. */
.le-resize[b-ktj1bvgm5n] {
    position: absolute; top: 0; right: 0; width: 14px; height: 100%;
    border-radius: 0 var(--radius) var(--radius) 0;
    cursor: ew-resize; touch-action: none; opacity: 0.4;
    transition: opacity var(--motion-fade), background-color var(--motion-fade);
}
.le-resize[b-ktj1bvgm5n]::after {
    content: ''; position: absolute; top: 50%; right: 4px; translate: 0 -50%;
    width: 2px; height: 14px; border-radius: 1px; background: var(--text-faint);
}
.le-item:hover .le-resize[b-ktj1bvgm5n],
.le-item--resizing .le-resize[b-ktj1bvgm5n],
.le-resize:focus-visible[b-ktj1bvgm5n] { opacity: 1; }
.le-resize:hover[b-ktj1bvgm5n], .le-resize:focus-visible[b-ktj1bvgm5n] { background: rgba(var(--glow), 0.18); }
.le-resize:hover[b-ktj1bvgm5n]::after, .le-resize:focus-visible[b-ktj1bvgm5n]::after { background: var(--accent); }
.le-resize:focus-visible[b-ktj1bvgm5n] { outline: 2px solid var(--accent); outline-offset: -2px; }
/* Kept faintly visible rather than hover-only: touch has no hover, and the grip is the only pointer
   affordance for width. Hover and focus bring it to full strength. */

.le-preview[b-ktj1bvgm5n] { margin-top: 1.125rem; border: 1px solid var(--border-soft); border-radius: var(--radius-lg); overflow: hidden; }
.le-preview-head[b-ktj1bvgm5n] {
    display: flex; align-items: center; gap: var(--space-3); padding: var(--space-4) var(--space-5); border-bottom: 1px solid var(--border-soft);
    background: var(--surface); font-family: var(--font-kicker); font-size: var(--text-xs); letter-spacing: 0.08em;
    text-transform: uppercase; color: var(--text-dim);
}
.le-preview-note[b-ktj1bvgm5n] {
    margin-left: auto; text-transform: none; letter-spacing: 0;
    font-family: var(--font-ui); font-size: var(--text-xs); color: var(--text-faint);
}
.le-preview-surface[b-ktj1bvgm5n] { padding: var(--space-5); background: var(--bg); }
.le-preview-zone[b-ktj1bvgm5n] { margin-bottom: 0.875rem; }
.le-preview-zone:last-child[b-ktj1bvgm5n] { margin-bottom: 0; }
.le-preview-zlabel[b-ktj1bvgm5n] {
    font-family: var(--font-kicker); font-size: var(--text-xs); letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--text-faint); margin-bottom: 0.375rem;
}

.le-item[b-ktj1bvgm5n] {
    position: relative; container-type: inline-size;
    display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-4); border-radius: var(--radius);
    background: var(--surface-2); border: 1px solid var(--border); cursor: grab; user-select: none;
}
.le-item:hover[b-ktj1bvgm5n] { border-color: rgba(var(--glow), 0.4); }
.le-item--resizing[b-ktj1bvgm5n] { border-color: var(--accent); cursor: ew-resize; }

/* A one-column widget is roughly 60px wide, which cannot hold five controls. Shed the decorative
   parts first and the name last; every button survives, because they are the non-drag path. */
@container (max-width: 15rem) { .le-item[b-ktj1bvgm5n]  .le-item-grip, .le-span-num[b-ktj1bvgm5n] { display: none; } }
@container (max-width: 9rem) { .le-item-name[b-ktj1bvgm5n] { display: none; } }
.le-item--template[b-ktj1bvgm5n] { background: rgba(var(--glow), 0.06); border-style: dashed; }
.le-item-name[b-ktj1bvgm5n] { font-family: var(--font-ui); font-size: var(--text-sm); color: var(--text); font-weight: 500;
    flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.le-item-btn[b-ktj1bvgm5n] {
    width: 24px; height: 24px; display: grid; place-items: center; border-radius: 6px;
    border: 1px solid transparent; background: transparent; color: var(--text-faint); cursor: pointer;
}
.le-item-btn:hover[b-ktj1bvgm5n] { color: var(--text); border-color: var(--border); }
.le-item-btn--danger:hover[b-ktj1bvgm5n] { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 50%, transparent); }

[b-ktj1bvgm5n] .mud-drop-zone-drag-block-target { outline: 2px dashed rgba(var(--glow), 0.5); outline-offset: -4px; }

/* The drop skeleton MudBlazor renders at the insertion index once AllowReorder is on. Its default look
   is a MudBlazor chip; these rules restate it in the editor's own language. Three compound selectors
   outrank the single-class utilities MudBlazor puts on the element, so no !important is needed. */
.layedit[b-ktj1bvgm5n]  .mud-dropitem-placeholder {
    border: 1px dashed rgba(var(--glow), 0.75); background: rgba(var(--glow), 0.09);
    border-radius: var(--radius); min-height: 38px; padding: 0; margin: 0;
}
/* Sized to the widget in flight, so the gap previews the real footprint rather than a stub. */
.layedit[b-ktj1bvgm5n]  .le-zone-drop--grid .mud-dropitem-placeholder { grid-column: span var(--le-drag-span, 12); }

/* The widget being dragged stays legible in its old position, so its origin is never in doubt. */
.layedit[b-ktj1bvgm5n]  .mud-drop-item.le-item-lifted { opacity: 0.4; }
/* /Pages/Admin/Layout/WidgetConfigDialog.razor.rz.scp.css */
.widget-config-dialog[b-1s51wu1d0q] {
    container-type: inline-size;
}

/* The line above the settings: what they are for, and the switch to the other view. */
.wcd-mode[b-1s51wu1d0q] {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--space-4);
	margin-bottom: var(--space-4);
}

.wcd-mode[b-1s51wu1d0q]  .mud-button-root {
	flex-shrink: 0;
	white-space: nowrap;
}

@container (max-width: 30rem) {
	.wcd-mode[b-1s51wu1d0q] {
		flex-direction: column;
	}
}
/* /Pages/Admin/Layout/WidgetConfigForm.razor.rz.scp.css */
.wcf[b-yqfrmycfjm] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	min-width: 0;
}

.wcf-field[b-yqfrmycfjm] {
	min-width: 0;
}

.wcf-help[b-yqfrmycfjm] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.wcf-list[b-yqfrmycfjm] {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.wcf-list-label[b-yqfrmycfjm] {
	padding: 0;
	font-weight: 600;
	color: var(--text);
}

.wcf-item[b-yqfrmycfjm] {
	padding: var(--space-4);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--surface);
}

.wcf-item-head[b-yqfrmycfjm] {
	display: flex;
	align-items: center;
	gap: var(--space-1);
	margin-bottom: var(--space-3);
}

.wcf-item-title[b-yqfrmycfjm] {
	flex: 1;
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: var(--kicker-tracking);
	text-transform: uppercase;
	color: var(--text-faint);
}

.wcf[b-yqfrmycfjm]  .wcf-item-remove {
	color: var(--danger);
}

.wcf[b-yqfrmycfjm]  .wcf-add {
	align-self: flex-start;
}

/* An empty field shows a sample value, greyed, so its shape is clear before anything is typed. */
.wcf[b-yqfrmycfjm]  input::placeholder,
.wcf[b-yqfrmycfjm]  textarea::placeholder {
	color: var(--text-faint);
	opacity: 1;
}
/* /Pages/Admin/Moderation.razor.rz.scp.css */
.adm-mod-body[b-zjwxr41fzh] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--space-5) var(--space-5) var(--space-5);
}

.adm-mod-matches[b-zjwxr41fzh],
.adm-mod-hosts[b-zjwxr41fzh] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.adm-mod-match[b-zjwxr41fzh] {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--space-3);
	width: 100%;
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--border);
	border-radius: 8px;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: start;
	cursor: pointer;
}

.adm-mod-match:hover[b-zjwxr41fzh],
.adm-mod-match:focus-visible[b-zjwxr41fzh] {
	border-color: var(--accent);
}

.adm-mod-picked[b-zjwxr41fzh] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.adm-mod-who[b-zjwxr41fzh] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3);
}

.adm-mod-ban-length[b-zjwxr41fzh] {
	max-width: 14rem;
}

.adm-mod-actions[b-zjwxr41fzh] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
}

.adm-mod-note[b-zjwxr41fzh] {
	margin: 0;
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.adm-mod-dim[b-zjwxr41fzh] {
	font-size: var(--text-sm);
	color: var(--text-faint);
}

.adm-mod-body[b-zjwxr41fzh]  .adm-mod-table .adm-mod-dim {
	display: block;
}

.adm-mod-hosts li[b-zjwxr41fzh] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	align-items: baseline;
}

.adm-mod-mono[b-zjwxr41fzh] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
}

.adm-mod-link[b-zjwxr41fzh] {
	color: var(--accent);
	text-decoration: none;
}

.adm-mod-link:hover[b-zjwxr41fzh] {
	text-decoration: underline;
}

.adm-mod-body[b-zjwxr41fzh]  .adm-mod-table {
	background: transparent;
}

.adm-mod-body[b-zjwxr41fzh]  .adm-mod-reason {
	overflow-wrap: anywhere;
}

@container page (max-width: 48rem) {
	.adm-mod-ban-length[b-zjwxr41fzh] {
		max-width: none;
	}
}
/* /Pages/Admin/Navigation/AdminNavigation.razor.rz.scp.css */
.adm-nav-layout[b-t69ddnj9d2] {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem);
	gap: var(--space-5);
	align-items: start;
}

.adm-nav-tree[b-t69ddnj9d2],
.adm-nav-side[b-t69ddnj9d2] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	min-width: 0;
}

.adm-nav-group-fields[b-t69ddnj9d2] {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-3);
	margin-bottom: 8px;
}

.adm-nav-items[b-t69ddnj9d2] {
	list-style: none;
	margin: 0 0 8px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	min-height: 2.5rem;
}

.adm-nav-item[b-t69ddnj9d2] {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--space-3);
	padding: var(--space-2) var(--space-3);
	border: 1px solid var(--border);
	border-radius: var(--radius-row);
	background: var(--surface);
	transition: background var(--motion-fade), border-color var(--motion-fade);
}

.adm-nav-item:hover[b-t69ddnj9d2] {
	background: var(--surface-2);
}

.adm-nav-item--gone[b-t69ddnj9d2] {
	color: var(--text-faint);
	border-style: dashed;
}

.adm-nav-grip[b-t69ddnj9d2] {
	cursor: grab;
	color: var(--text-faint);
	display: inline-flex;
}

.adm-nav-item-name[b-t69ddnj9d2] {
	font-weight: 600;
	min-width: 0;
	overflow-wrap: anywhere;
}

.adm-nav-item-key[b-t69ddnj9d2] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text-faint);
	overflow-wrap: anywhere;
}

.adm-nav-item-actions[b-t69ddnj9d2] {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: var(--space-1);
}

.adm-nav-move[b-t69ddnj9d2] {
	font: inherit;
	font-size: var(--text-sm);
	color: var(--text);
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 6px;
	padding: var(--space-2) var(--space-3);
	min-height: 32px;
}

.adm-nav-move:focus-visible[b-t69ddnj9d2] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.adm-nav-pill[b-t69ddnj9d2] {
	font-size: var(--text-xs);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: var(--space-1) var(--space-3);
	border-radius: 999px;
	border: 1px solid var(--border);
	color: var(--text-faint);
}

.adm-nav-pill--new[b-t69ddnj9d2] {
	border-color: var(--warn);
	color: var(--warn);
	background: var(--warn-tint);
}

.adm-nav-empty[b-t69ddnj9d2] {
	list-style: none;
}

.adm-nav-link-form[b-t69ddnj9d2],
.adm-nav-add-group[b-t69ddnj9d2] {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: var(--space-3);
}

.adm-nav-link-form > *[b-t69ddnj9d2],
.adm-nav-add-group > :first-child[b-t69ddnj9d2] {
	flex: 1 1 12rem;
}

.adm-nav-link-actions[b-t69ddnj9d2] {
	display: flex;
	gap: var(--space-3);
	flex: 1 1 100%;
}

.adm-nav-banner[b-t69ddnj9d2] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-4) var(--space-5);
	border: 1px solid var(--border);
	border-radius: var(--radius-row);
	background: var(--surface-2);
}

.adm-nav-banner--warn[b-t69ddnj9d2] {
	border-color: var(--warn);
	background: var(--warn-tint);
}

.adm-nav-unsaved[b-t69ddnj9d2] {
	color: var(--warn);
	font-size: var(--text-base);
	align-self: center;
}

.adm-nav-tabs[b-t69ddnj9d2] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	margin-bottom: 8px;
}

.adm-nav-help[b-t69ddnj9d2] {
	margin: 4px 0 0;
	color: var(--text-faint);
	font-size: var(--text-sm);
}

.adm-nav-preview[b-t69ddnj9d2] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.adm-nav-preview-head[b-t69ddnj9d2] {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
	font-weight: 600;
}

.adm-nav-preview ul[b-t69ddnj9d2] {
	list-style: none;
	margin: 4px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}

.adm-nav-preview li[b-t69ddnj9d2] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.adm-nav-preview-tabs[b-t69ddnj9d2] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	padding-top: var(--space-3);
	border-top: 1px solid var(--border);
}

.adm-nav-preview-tabs > span[b-t69ddnj9d2] {
	padding: var(--space-1) var(--space-3);
	border-radius: 999px;
	background: var(--surface-2);
	font-size: var(--text-sm);
}

@container page (max-width: 64rem) {
	.adm-nav-layout[b-t69ddnj9d2] {
		grid-template-columns: minmax(0, 1fr);
	}
}

@container page (max-width: 48rem) {
	.adm-nav-group-fields[b-t69ddnj9d2] {
		grid-template-columns: minmax(0, 1fr);
	}
}
/* /Pages/Admin/OAuthApps.razor.rz.scp.css */
.oauth-form[b-zhv1zd9rpl] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-5) var(--space-5) var(--space-5);
	min-width: 0;
	flex-wrap: wrap;
}

.oauth-form[b-zhv1zd9rpl]  .oauth-field {
	flex: 1 1 240px;
	min-width: 0;
	margin: 0;
}

.oauth-form[b-zhv1zd9rpl]  .oauth-field--wide {
	flex: 1 1 100%;
}

.oauth-form[b-zhv1zd9rpl]  .oauth-check {
	flex: 0 0 auto;
}

.oauth-scopes[b-zhv1zd9rpl] {
	display: flex;
	flex: 1 1 100%;
	flex-wrap: wrap;
	gap: 0 var(--space-5);
	margin: 0;
	padding: 0;
	border: 0;
}

.oauth-scopes-legend[b-zhv1zd9rpl] {
	flex: 1 1 100%;
	padding: 0;
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.oauth-form-actions[b-zhv1zd9rpl] {
	display: flex;
	gap: var(--space-3);
	margin-left: auto;
}

.oauth-secret-value[b-zhv1zd9rpl] {
	display: block;
	margin-top: 6px;
	font-family: var(--font-mono);
	overflow-wrap: anywhere;
	user-select: all;
}

.oauth-rows[b-zhv1zd9rpl] {
	list-style: none;
	margin: 0;
	padding: 0;
}

.oauth-row[b-zhv1zd9rpl] {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	padding: var(--space-4) var(--space-4) var(--space-4) var(--space-5);
}

.oauth-row:not(:first-child)[b-zhv1zd9rpl] {
	border-top: 1px solid var(--border-soft);
}

.oauth-row-text[b-zhv1zd9rpl] {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: var(--space-1);
	min-width: 0;
}

.oauth-row-head[b-zhv1zd9rpl] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	flex-wrap: wrap;
}

.oauth-row-name[b-zhv1zd9rpl] {
	font-weight: 600;
}

.oauth-sub[b-zhv1zd9rpl] {
	font-size: var(--text-sm);
	color: var(--text-dim);
	overflow-wrap: anywhere;
}

code.oauth-sub[b-zhv1zd9rpl] {
	font-family: var(--font-mono);
}

.oauth-row-actions[b-zhv1zd9rpl] {
	display: flex;
	flex-shrink: 0;
}

/* On a phone an app's buttons go under its name and addresses rather than squeezing them. */
@container page (max-width: 48rem) {
	.oauth-row[b-zhv1zd9rpl] {
		flex-direction: column;
		align-items: stretch;
	}

	.oauth-row-actions[b-zhv1zd9rpl] {
		justify-content: flex-end;
	}
}
/* /Pages/Admin/Onboarding.razor.rz.scp.css */
.admin-onboarding[b-oe6wid8m4t] { max-width: 56rem; margin: auto; padding: clamp(var(--space-5), 3vw, var(--space-8)); color: var(--text); }
.admin-onboarding p[b-oe6wid8m4t] { line-height: 1.65; max-width: 70ch; margin-block: .75rem; }
.admin-checklist[b-oe6wid8m4t] { margin-top: 2rem; padding-left: var(--space-6); }
.admin-checklist li[b-oe6wid8m4t] { border-top: 1px solid var(--border); padding: var(--space-6) 0; display: flow-root; }
.admin-topic-mascot[b-oe6wid8m4t] { float: right; width: 7rem; height: 7rem; object-fit: contain; margin: 0 0 1rem 1.25rem; }
.admin-topic-mascot-reduced[b-oe6wid8m4t] { width: 2.5rem; height: 2.5rem; }
.admin-checklist summary[b-oe6wid8m4t] { cursor: pointer; }
.admin-checklist h2[b-oe6wid8m4t] { display: inline; margin: 0 .75rem 0 0; font-size: var(--text-lg); }
.admin-checklist .admin-check-handled[b-oe6wid8m4t] { padding: var(--space-3) 0; }
.admin-check-handled summary[b-oe6wid8m4t] { color: var(--text-dim); }
.admin-check-handled h2[b-oe6wid8m4t] { font-size: var(--text-md); font-weight: 600; }
.admin-onboarding a:not([class])[b-oe6wid8m4t] { color: var(--accent); text-decoration: underline; text-underline-offset: .2em; }
.admin-check-actions[b-oe6wid8m4t] { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: .75rem; }
.admin-check-actions button[b-oe6wid8m4t] { padding: var(--space-4); color: var(--text); background: var(--surface); border: 1px solid var(--border); border-radius: 5px; cursor: pointer; }
.admin-check-state[b-oe6wid8m4t] { font-size: var(--text-base); font-weight: 650; }
.admin-check-warning[b-oe6wid8m4t] { padding: var(--space-3) var(--space-4); border-left: 3px solid var(--warn); background: var(--warn-tint); border-radius: 4px; }
.admin-onboarding :focus-visible[b-oe6wid8m4t] { outline: 2px solid var(--accent); outline-offset: 3px; }

@container page (max-width: 48rem) {
    .admin-onboarding[b-oe6wid8m4t] { padding: var(--space-5); }
    .admin-check-actions[b-oe6wid8m4t] { flex-direction: column; align-items: stretch; }
    .admin-topic-mascot:not(.admin-topic-mascot-reduced)[b-oe6wid8m4t] { width: 5rem; height: 5rem; margin-left: .75rem; }
}
/* /Pages/Admin/Packages/AdminPackageAuthor.razor.rz.scp.css */
.pkg-step[b-4ohpf802ed] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.pkg-external[b-4ohpf802ed] {
    padding: var(--space-4);
    margin-bottom: 8px;
    background: var(--surface-2);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-tile);
}
.pkg-export-yaml[b-4ohpf802ed] { max-height: 480px; }
.pkg-card-body[b-4ohpf802ed] { padding: var(--space-5) var(--space-5) var(--space-5); }
.pkg-card-body[b-4ohpf802ed]  .pkg-btn-primary {
    background: var(--accent);
    color: var(--accent-on);
}

.pkg-page[b-4ohpf802ed]  .pkg-resolution-select { max-width: 200px; }
.pkg-page[b-4ohpf802ed]  .pkg-wellknown-select { max-width: 220px; }
.pkg-page[b-4ohpf802ed]  .pkg-configure-key-field { max-width: 200px; }

@container page (max-width: 48rem) {
    .pkg-page[b-4ohpf802ed]  .flex-row { flex-wrap: wrap; }

    .pkg-page[b-4ohpf802ed]  .pkg-resolution-select,
    .pkg-page[b-4ohpf802ed]  .pkg-wellknown-select,
    .pkg-page[b-4ohpf802ed]  .pkg-configure-key-field {
        max-width: 100%;
    }
}
/* /Pages/Admin/Packages/AdminPackageBrowse.razor.rz.scp.css */
.pkg-toolbar[b-3dveu7e5uf] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    flex-wrap: wrap;
    padding: var(--space-5) var(--space-5);
}
.pkg-toolbar[b-3dveu7e5uf]  .pkg-btn-primary {
    background: var(--accent);
    color: var(--accent-on);
}
.pkg-toolbar[b-3dveu7e5uf]  .pkg-remote-select { max-width: 320px; }

@container page (max-width: 48rem) {
    .pkg-toolbar[b-3dveu7e5uf]  .pkg-remote-select { max-width: 100%; }
}

/* Filters: search, what a package ships, and the categories. */
.lib-filters[b-3dveu7e5uf] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-4) var(--space-5);
    padding: var(--space-5) var(--space-5) var(--space-4);
}

.lib-search[b-3dveu7e5uf] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-row);
    transition: border-color var(--motion-fade);
    flex: 1 1 220px;
    max-width: 320px;
}
.lib-search:focus-within[b-3dveu7e5uf] { border-color: var(--accent); }
.lib-search[b-3dveu7e5uf]  .lib-search-icon { font-size: var(--text-md); color: var(--text-faint); }
.lib-search input[b-3dveu7e5uf] {
    background: transparent;
    border: none;
    outline: none;
    color: var(--text);
    font: inherit;
    font-size: var(--text-sm);
    width: 100%;
}
.lib-search input[b-3dveu7e5uf]::placeholder { color: var(--text-faint); }

.lib-chips[b-3dveu7e5uf] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
}
.lib-chips-label[b-3dveu7e5uf] {
    font-size: var(--text-sm);
    color: var(--text-faint);
    margin-right: 0.25rem;
}

.lib-chip[b-3dveu7e5uf],
.lib-category[b-3dveu7e5uf] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 28px;
    padding: 0 var(--space-4);
    border: 1px solid var(--border);
    border-radius: 14px;
    background: transparent;
    color: var(--text-dim);
    font: inherit;
    font-size: var(--text-sm);
    cursor: pointer;
    transition: color var(--motion-fade), border-color var(--motion-fade), background var(--motion-fade);
}
.lib-chip[b-3dveu7e5uf]  .mud-icon-root { font-size: var(--text-base); }
.lib-chip:hover[b-3dveu7e5uf],
.lib-category:hover[b-3dveu7e5uf] { color: var(--text); border-color: var(--text-faint); }
.lib-chip.active[b-3dveu7e5uf],
.lib-category.active[b-3dveu7e5uf] {
    color: var(--accent);
    border-color: var(--accent);
    background: rgba(var(--glow), 0.12);
}

.lib-categories[b-3dveu7e5uf] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    padding: 0 var(--space-5) var(--space-4);
}

.lib-count[b-3dveu7e5uf] {
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    color: var(--text-faint);
}
.lib-category.active .lib-count[b-3dveu7e5uf] { color: var(--accent); }

.lib-group-count[b-3dveu7e5uf] {
    font-size: var(--text-sm);
    color: var(--text-faint);
}

/* A subcategory heading inside a category. */
.lib-subcategory[b-3dveu7e5uf] {
    display: flex;
    align-items: baseline;
    gap: var(--space-3);
    margin: 0;
    padding: var(--space-5) var(--space-5) var(--space-1);
    font-size: var(--text-sm);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-dim);
}

.lib-rows[b-3dveu7e5uf] {
    display: flex;
    flex-direction: column;
    padding: 0 var(--space-4) var(--space-3);
}

.lib-family[b-3dveu7e5uf] { border-top: 1px solid var(--border-soft); }
.lib-family:first-child[b-3dveu7e5uf] { border-top: 0; }
.lib-family[b-3dveu7e5uf]  .pkg-row { border-top: 0; }

/* The bridges under a package: a summary line that opens into indented rows. */
.lib-addons-toggle[b-3dveu7e5uf] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    width: 100%;
    min-height: 32px;
    margin: -4px 0 8px;
    padding: 0 var(--space-2) 0 var(--space-7);
    border: 0;
    background: transparent;
    color: var(--text-dim);
    font: inherit;
    font-size: var(--text-sm);
    font-weight: 600;
    text-align: left;
    justify-content: flex-start;
    cursor: pointer;
}
.lib-addons-toggle:hover[b-3dveu7e5uf] { color: var(--text); }
.lib-addons-names[b-3dveu7e5uf] {
    font-weight: 400;
    color: var(--text-faint);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.lib-addons[b-3dveu7e5uf] {
    margin: 0 0 10px 40px;
    padding-left: var(--space-4);
    border-left: 2px solid color-mix(in srgb, var(--warn) 45%, transparent);
}

@container page (max-width: 48rem) {
    .lib-search[b-3dveu7e5uf] { max-width: 100%; flex-basis: 100%; }
    .lib-addons[b-3dveu7e5uf] { margin-left: 12px; }
    .lib-addons-toggle[b-3dveu7e5uf] { padding-left: var(--space-2); }
}

/* The dependency graph, in place of the list. */
.lib-graph[b-3dveu7e5uf] { padding: var(--space-5) var(--space-5); }

/* Said once above the lists, rather than on every row: which packages offer only the dev channel. */
.lib-untagged[b-3dveu7e5uf] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0;
    font-size: var(--text-sm);
    color: var(--text-dim);
}
/* /Pages/Admin/Packages/AdminPackageRemotes.razor.rz.scp.css */
.pkg-cols[b-mcxnvio3o5] {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: var(--space-5);
    align-items: start;
}
.pkg-card-body[b-mcxnvio3o5] { padding: var(--space-5) var(--space-5) var(--space-5); }
.pkg-card-body[b-mcxnvio3o5]  .pkg-remotes-table { background: transparent; }
.pkg-listing[b-mcxnvio3o5] {
    padding: var(--space-4);
    margin-bottom: 8px;
    background: var(--surface-2);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-tile);
}
.pkg-card-body[b-mcxnvio3o5]  .pkg-btn-primary {
    background: var(--accent);
    color: var(--accent-on);
}

/* README §3: the two cards stay side by side at the medium tier (the design size); only narrow stacks */
@container page (max-width: 48rem) {
    .pkg-cols[b-mcxnvio3o5] { grid-template-columns: minmax(0, 1fr); }

    .pkg-card-body[b-mcxnvio3o5]  .pkg-remotes-table thead { display: none; }

    .pkg-card-body[b-mcxnvio3o5]  .pkg-remotes-table tr {
        display: block;
        border-bottom: 1px solid var(--border-soft);
        padding-block: var(--space-3);
    }

    .pkg-card-body[b-mcxnvio3o5]  .pkg-remotes-table td {
        display: grid;
        grid-template-columns: minmax(0, 8rem) minmax(0, 1fr);
        gap: var(--space-3);
        border: none;
    }

    .pkg-card-body[b-mcxnvio3o5]  .pkg-remotes-table td::before {
        content: attr(data-label);
        color: var(--text-dim);
        font-size: var(--text-sm);
    }

    .pkg-card-body[b-mcxnvio3o5]  .pkg-remotes-table td:last-child {
        grid-template-columns: minmax(0, 1fr);
    }

    .pkg-card-body[b-mcxnvio3o5]  .pkg-remotes-table td:last-child::before {
        content: none;
    }

    /* "Add a remote" trust+branch row and the community-listing rows: MudStack Row renders an
       unwrapped `d-flex flex-row`, so without this the (now full-width) fields stay side by
       side and overflow. .flex-row is MudBlazor-rendered, hence ::deep. */
    .pkg-page[b-mcxnvio3o5]  .flex-row { flex-wrap: wrap; }

    .pkg-page[b-mcxnvio3o5]  .mud-input-control { max-width: 100%; }
}
/* /Pages/Admin/Packages/AdminPackageReview.razor.rz.scp.css */
/* The page used to carry no padding at all, so under Build & manage (whose body adds none) the
   review ran into the section's edges. */
.pkg-review[b-p9yw4zxn4z] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    padding: var(--main-pad);
    min-width: 0;
}

.pkg-review-body[b-p9yw4zxn4z] {
    padding: var(--space-5) var(--space-5) var(--space-5);
    min-width: 0;
}

.pkg-review-body[b-p9yw4zxn4z]  .pkg-objects-table {
    background: transparent;
}

@container page (max-width: 48rem) {
    .pkg-review-body[b-p9yw4zxn4z]  .pkg-objects-table thead { display: none; }

    .pkg-review-body[b-p9yw4zxn4z]  .pkg-objects-table tr {
        display: block;
        border-bottom: 1px solid var(--border-soft);
        padding-block: var(--space-3);
    }

    .pkg-review-body[b-p9yw4zxn4z]  .pkg-objects-table td {
        display: grid;
        grid-template-columns: minmax(0, 6rem) minmax(0, 1fr);
        gap: var(--space-3);
        border: none;
    }

    .pkg-review-body[b-p9yw4zxn4z]  .pkg-objects-table td::before {
        content: attr(data-label);
        color: var(--text-dim);
        font-size: var(--text-sm);
    }

    .pkg-review[b-p9yw4zxn4z]  .flex-row { flex-wrap: wrap; }

    .pkg-review[b-p9yw4zxn4z]  .mud-input-control { max-width: 100%; }

}

.pkg-review-body .pkg-sha[b-p9yw4zxn4z] { word-break: break-all; }

/* Each lock conflict is its own block: its label, the three values, then the choice. */
.pkg-lock-conflict[b-p9yw4zxn4z] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.pkg-lock-conflict + .pkg-lock-conflict[b-p9yw4zxn4z] {
    margin-top: 16px;
    padding-top: var(--space-5);
    border-top: 1px solid var(--border-soft);
}

/* Each hook: where it runs, then its code. */
.pkg-hook + .pkg-hook[b-p9yw4zxn4z] {
    margin-top: 16px;
}
/* /Pages/Admin/Packages/AdminPackages.razor.rz.scp.css */
.pkg-tabs[b-t0l73ug6hm] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: 0 var(--space-4);
    border-bottom: 1px solid var(--border-soft);
}

.pkg-tab[b-t0l73ug6hm] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-height: 52px;
    padding: 0 var(--space-4);
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    cursor: pointer;
    font: inherit;
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--text-dim);
    transition: color var(--motion-fade), border-color var(--motion-fade);
}

.pkg-tab:hover[b-t0l73ug6hm] { color: var(--text); }

.pkg-tab.active[b-t0l73ug6hm] {
    color: var(--accent);
    border-bottom-color: var(--accent);
}

.pkg-tab-count[b-t0l73ug6hm] {
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    color: var(--text-faint);
    padding: 0 var(--space-3);
    border-radius: 99px;
    background: var(--surface-2);
}

.pkg-tab.active .pkg-tab-count[b-t0l73ug6hm] {
    color: var(--accent);
    background: rgba(var(--glow), 0.12);
}

.pkg-tabs-spacer[b-t0l73ug6hm] { flex: 1; }

.pkg-search[b-t0l73ug6hm] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-row);
    transition: border-color var(--motion-fade);
}

.pkg-search:focus-within[b-t0l73ug6hm] { border-color: var(--accent); }

.pkg-search[b-t0l73ug6hm]  .pkg-search-icon {
    font-size: var(--text-md);
    color: var(--text-faint);
}

.pkg-search input[b-t0l73ug6hm] {
    background: transparent;
    border: none;
    outline: none;
    color: var(--text);
    font: inherit;
    font-size: var(--text-sm);
    width: 200px;
}

.pkg-search input[b-t0l73ug6hm]::placeholder { color: var(--text-faint); }

.pkg-body[b-t0l73ug6hm] {
    padding: var(--space-4) var(--space-5) var(--space-5);
}

.pkg-rows[b-t0l73ug6hm] {
    display: flex;
    flex-direction: column;
}

@container page (max-width: 48rem) {
    .pkg-tabs[b-t0l73ug6hm] { flex-wrap: wrap; padding-bottom: var(--space-3); }
    .pkg-search[b-t0l73ug6hm] { flex: 1 1 100%; }
    .pkg-search input[b-t0l73ug6hm] { width: 100%; }
}

.pkg-restart-banner[b-t0l73ug6hm] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3) var(--space-5);
}
/* /Pages/Admin/Packages/LibraryPackageRow.razor.rz.scp.css */
.lib-note[b-f3005sc0me] { overflow-wrap: anywhere; }
.lib-warn[b-f3005sc0me] { color: var(--warn); }

.lib-installed[b-f3005sc0me] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--success);
}
.lib-installed[b-f3005sc0me]  .mud-icon-root { font-size: var(--text-base); }

.lib-row[b-f3005sc0me]  .pkg-row { padding-inline: var(--space-4); }

/* An installed package's row (the one with an Installed mark) is tinted, with a bar in that mark's colour. */
.lib-row:has(.lib-installed)[b-f3005sc0me] {
    margin-block: 2px;
    border-radius: 6px;
    background: color-mix(in srgb, var(--success) 8%, transparent);
    box-shadow: inset 3px 0 0 var(--success);
}
.lib-row:has(.lib-installed)[b-f3005sc0me]  .pkg-row { border-top-color: transparent; }

/* What a package needs, one chip each: a missing one in --warn, an installed one checked. */
.lib-needs[b-f3005sc0me] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    color: var(--text-dim);
}
.lib-needs[b-f3005sc0me]  .mud-icon-root { font-size: var(--text-base); }
.lib-need[b-f3005sc0me] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    height: 20px;
    padding: 0 var(--space-3);
    border-radius: 10px;
    font-family: var(--font-mono, monospace);
    font-weight: 600;
    color: var(--text);
    background: color-mix(in srgb, var(--text) 10%, transparent);
}
.lib-need[b-f3005sc0me]  .mud-icon-root { color: var(--success); }
.lib-need--missing[b-f3005sc0me] {
    color: var(--warn);
    background: var(--warn-tint);
    box-shadow: inset 0 0 0 1px var(--warn);
}

.lib-row[b-f3005sc0me]  .lib-version-select { width: 180px; flex: 0 0 auto; }

.lib-row[b-f3005sc0me]  .lib-queued {
    color: var(--success);
    border-color: var(--success);
    background: color-mix(in srgb, var(--success) 12%, transparent);
}

.lib-row[b-f3005sc0me]  .pkg-btn-primary {
    background: var(--accent);
    color: var(--accent-on);
}

@container page (max-width: 48rem) {
    .lib-row[b-f3005sc0me]  .lib-version-select { width: 100%; flex: 1 1 100%; }
    .lib-row:has(.lib-installed)[b-f3005sc0me] { margin-block: 0; background: none; box-shadow: none; }
    .lib-row:has(.lib-installed)[b-f3005sc0me]  .pkg-row {
        border-color: color-mix(in srgb, var(--success) 45%, transparent);
        background: color-mix(in srgb, var(--success) 8%, var(--surface-2));
        box-shadow: inset 3px 0 0 var(--success);
    }
}
/* /Pages/Admin/Packages/PackageBatchQueue.razor.rz.scp.css */
.pkg-batch-queue[b-xxphkog3bv] { padding: var(--space-5) var(--space-5); overflow-wrap: anywhere; }
.pkg-batch-queue .pkg-batch-list[b-xxphkog3bv] { margin-bottom: 0.75rem; }

/* One change in the queue or the reviewed order: action label, package, version, then a muted meta line. */
.pkg-batch-list[b-xxphkog3bv] { margin: 0; padding: 0; list-style: none; }
.pkg-batch-item[b-xxphkog3bv] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    padding: var(--space-4) 0;
    border-top: 1px solid var(--border-soft);
}
.pkg-batch-item:first-child[b-xxphkog3bv] { border-top: 0; padding-top: 0; }
.pkg-batch-item-main[b-xxphkog3bv] { flex: 1; min-width: 0; }
.pkg-batch-item-head[b-xxphkog3bv] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); }
.pkg-batch-name[b-xxphkog3bv] { font-size: var(--text-base); font-weight: 600; color: var(--text); }
.pkg-batch-version[b-xxphkog3bv] { font-size: var(--text-sm); color: var(--text-dim); }
.pkg-batch-commit[b-xxphkog3bv] { font-family: var(--font-mono, monospace); font-size: var(--text-sm); color: var(--text-faint); }
.pkg-batch-meta[b-xxphkog3bv] { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-4); margin-top: 2px; font-size: var(--text-sm); color: var(--text-faint); }
.pkg-batch-action[b-xxphkog3bv] {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0 var(--space-3);
    border-radius: 10px;
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--action-color);
    background: color-mix(in srgb, var(--action-color) 14%, transparent);
}
.pkg-batch-action--install[b-xxphkog3bv] { --action-color: var(--success); }
.pkg-batch-action--uninstall[b-xxphkog3bv] { --action-color: var(--danger); }
.pkg-batch-action--plugin[b-xxphkog3bv] { --action-color: var(--special); }
/* /Pages/Admin/Packages/PackageBatchReview.razor.rz.scp.css */
.pkg-batch-review[b-vrqiz49uvm] { min-width: 0; }
.pkg-batch-body[b-vrqiz49uvm] { padding: var(--space-5) var(--space-5); overflow-wrap: anywhere; }
.pkg-batch-body ol:not(.pkg-batch-list)[b-vrqiz49uvm], .pkg-batch-body ul:not(.pkg-batch-list)[b-vrqiz49uvm] { padding-left: var(--space-6); }
.pkg-batch-body li:not(.pkg-batch-item)[b-vrqiz49uvm] { margin-bottom: 0.5rem; }
.pkg-batch-body p[b-vrqiz49uvm] { margin: 0.4rem 0; }
.pkg-batch-actions[b-vrqiz49uvm] { display: flex; flex-wrap: wrap; gap: var(--space-4); }
@container page (max-width: 48rem) {
    .pkg-batch-actions[b-vrqiz49uvm] { flex-direction: column; align-items: stretch; }
}
.pkg-batch-step-review[b-vrqiz49uvm] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-4); margin-top: 0.4rem; }
.pkg-batch-step-review[b-vrqiz49uvm]  .mud-alert { flex-basis: 100%; }

/* One change in the queue or the reviewed order: action label, package, version, then a muted meta line. */
.pkg-batch-list[b-vrqiz49uvm] { margin: 0; padding: 0; list-style: none; }
.pkg-batch-item[b-vrqiz49uvm] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    padding: var(--space-4) 0;
    border-top: 1px solid var(--border-soft);
}
.pkg-batch-item:first-child[b-vrqiz49uvm] { border-top: 0; padding-top: 0; }
.pkg-batch-item-main[b-vrqiz49uvm] { flex: 1; min-width: 0; }
.pkg-batch-item-head[b-vrqiz49uvm] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); }
.pkg-batch-name[b-vrqiz49uvm] { font-size: var(--text-base); font-weight: 600; color: var(--text); }
.pkg-batch-version[b-vrqiz49uvm] { font-size: var(--text-sm); color: var(--text-dim); }
.pkg-batch-commit[b-vrqiz49uvm] { font-family: var(--font-mono, monospace); font-size: var(--text-sm); color: var(--text-faint); }
.pkg-batch-meta[b-vrqiz49uvm] { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-4); margin-top: 2px; font-size: var(--text-sm); color: var(--text-faint); }
.pkg-batch-action[b-vrqiz49uvm] {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0 var(--space-3);
    border-radius: 10px;
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--action-color);
    background: color-mix(in srgb, var(--action-color) 14%, transparent);
}
.pkg-batch-action--install[b-vrqiz49uvm] { --action-color: var(--success); }
.pkg-batch-action--uninstall[b-vrqiz49uvm] { --action-color: var(--danger); }
.pkg-batch-action--plugin[b-vrqiz49uvm] { --action-color: var(--special); }
.pkg-batch-steps[b-vrqiz49uvm] { margin-bottom: 1rem; }
.pkg-batch-step-number[b-vrqiz49uvm] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--text-dim);
    background: var(--surface-2);
}
.pkg-batch-step .pkg-batch-step-review:empty[b-vrqiz49uvm] { display: none; }
.pkg-batch-details summary[b-vrqiz49uvm] { cursor: pointer; font-size: var(--text-sm); color: var(--text-dim); }
.pkg-batch-details ul[b-vrqiz49uvm] { margin: 0.4rem 0 0; font-size: var(--text-sm); }
.pkg-batch-state[b-vrqiz49uvm] { font-size: var(--text-sm); font-weight: 600; color: var(--text-dim); }
.pkg-batch-state--completed[b-vrqiz49uvm] { color: var(--success); }
.pkg-batch-state--failed[b-vrqiz49uvm], .pkg-batch-state--cancelled[b-vrqiz49uvm], .pkg-batch-state--unknown[b-vrqiz49uvm] { color: var(--danger); }
.pkg-batch-state--needsreview[b-vrqiz49uvm], .pkg-batch-state--awaitingrestart[b-vrqiz49uvm] { color: var(--warn); }
/* /Pages/Admin/Packages/PackageGraph.razor.rz.scp.css */
.pkg-graph[b-zeoerkz0vm] { display: flex; flex-direction: column; gap: var(--space-4); }

.pkg-graph-legend[b-zeoerkz0vm] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2) var(--space-5);
    font-size: var(--text-sm);
    color: var(--text-dim);
}
.pkg-graph-key[b-zeoerkz0vm] { display: inline-flex; align-items: center; gap: var(--space-2); }
.pkg-graph-swatch[b-zeoerkz0vm] {
    width: 14px;
    height: 10px;
    border-radius: 3px;
    border: 2px solid var(--node-color);
    background: color-mix(in srgb, var(--node-color) 14%, transparent);
}
.pkg-graph-key.pkg-graph-node--bridge .pkg-graph-swatch[b-zeoerkz0vm] { --node-color: var(--text-dim); border-style: dashed; background: none; }
.pkg-graph-hint[b-zeoerkz0vm] { margin-left: auto; color: var(--text-faint); }

/* The canvas keeps its laid-out size; a graph wider than the card scrolls inside it, never the page. */
.pkg-graph-scroll[b-zeoerkz0vm] {
    overflow: auto;
    max-height: 70vh;
    padding: var(--space-2);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius);
    background: var(--surface-2);
}
.pkg-graph-canvas[b-zeoerkz0vm] { position: relative; margin: 8px; }
.pkg-graph-lines[b-zeoerkz0vm] { position: absolute; inset: 0; overflow: visible; pointer-events: none; }
.pkg-graph-lines marker path[b-zeoerkz0vm] { fill: var(--text-faint); }

.pkg-graph-edge[b-zeoerkz0vm] {
    fill: none;
    stroke: var(--text-faint);
    stroke-width: 1.5;
    opacity: 0.5;
    transition: opacity var(--motion-fade), stroke var(--motion-fade);
}
.pkg-graph-edge--traced[b-zeoerkz0vm] { stroke: var(--accent); stroke-width: 2.5; opacity: 1; }
.pkg-graph-edge--dimmed[b-zeoerkz0vm] { opacity: 0.15; }

.pkg-graph-node--installed[b-zeoerkz0vm] { --node-color: var(--success); }
.pkg-graph-node--queued[b-zeoerkz0vm] { --node-color: var(--special); }
.pkg-graph-node--available[b-zeoerkz0vm] { --node-color: var(--border); }
.pkg-graph-node--missing[b-zeoerkz0vm] { --node-color: var(--warn); }

.pkg-graph-node[b-zeoerkz0vm] {
    position: absolute;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    gap: var(--space-1);
    padding: 0 var(--space-4);
    text-align: left;
    font: inherit;
    color: var(--text);
    cursor: pointer;
    border: 1.5px solid var(--node-color);
    border-left-width: 4px;
    border-radius: var(--radius-row, 6px);
    background: var(--card-bg, var(--surface));
    transition: opacity var(--motion-fade), box-shadow var(--motion-fade);
}
.pkg-graph-node:hover[b-zeoerkz0vm] { box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 35%, transparent); }
.pkg-graph-node:focus-visible[b-zeoerkz0vm] { outline: 2px solid var(--accent); outline-offset: 2px; }
.pkg-graph-node--bridge[b-zeoerkz0vm] { border-style: dashed; border-left-style: solid; }
.pkg-graph-node--selected[b-zeoerkz0vm] { box-shadow: 0 0 0 3px var(--accent); }
.pkg-graph-node--dimmed[b-zeoerkz0vm] { opacity: 0.35; }

.pkg-graph-name[b-zeoerkz0vm], .pkg-graph-id[b-zeoerkz0vm] { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.pkg-graph-name[b-zeoerkz0vm] { font-size: var(--text-sm); font-weight: 600; }
.pkg-graph-id[b-zeoerkz0vm] { font-family: var(--font-mono, monospace); font-size: var(--text-xs); color: var(--text-faint); }

.pkg-graph-detail[b-zeoerkz0vm] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-4) var(--space-4);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius);
    overflow-wrap: anywhere;
}
.pkg-graph-detail-head[b-zeoerkz0vm] { display: flex; align-items: center; gap: var(--space-3); }
.pkg-graph-detail-state[b-zeoerkz0vm] { font-size: var(--text-sm); font-weight: 600; color: var(--node-color); }
.pkg-graph-detail-state.pkg-graph-node--available[b-zeoerkz0vm] { color: var(--text-dim); }
.pkg-graph-relation[b-zeoerkz0vm] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); font-size: var(--text-sm); }
.pkg-graph-relation-label[b-zeoerkz0vm] { min-width: 6rem; color: var(--text-dim); }
.pkg-graph-relation-none[b-zeoerkz0vm] { color: var(--text-faint); }

.pkg-graph-unjoined[b-zeoerkz0vm] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); font-size: var(--text-sm); }
.pkg-graph-unjoined-label[b-zeoerkz0vm] { margin-right: 0.25rem; color: var(--text-dim); }

.pkg-graph-chip[b-zeoerkz0vm] {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 var(--space-3);
    font: inherit;
    font-size: var(--text-sm);
    color: var(--text);
    border: 1px solid var(--node-color);
    border-radius: 11px;
    background: color-mix(in srgb, var(--node-color) 12%, transparent);
}
button.pkg-graph-chip[b-zeoerkz0vm] { cursor: pointer; }
button.pkg-graph-chip:focus-visible[b-zeoerkz0vm] { outline: 2px solid var(--accent); outline-offset: 1px; }

/* /Pages/Admin/Packages/PackageKindTags.razor.rz.scp.css */
.pkg-kind-tag[b-zd1e9tqn28] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    height: 20px;
    padding: 0 var(--space-3) 0 var(--space-3);
    border-radius: 10px;
    font-size: var(--text-sm);
    font-weight: 600;
    white-space: nowrap;
    color: var(--kind-color);
    background: color-mix(in srgb, var(--kind-color) 14%, transparent);
}

.pkg-kind-tag[b-zd1e9tqn28]  .mud-icon-root { font-size: var(--text-base); }

.pkg-kind-tag--softcode[b-zd1e9tqn28] { --kind-color: var(--accent); }
.pkg-kind-tag--wiki[b-zd1e9tqn28] { --kind-color: var(--success); }
.pkg-kind-tag--application[b-zd1e9tqn28] { --kind-color: var(--info); }
.pkg-kind-tag--plugin[b-zd1e9tqn28] { --kind-color: var(--special); }
.pkg-kind-tag--ui[b-zd1e9tqn28] { --kind-color: var(--info); }
.pkg-kind-tag--bridge[b-zd1e9tqn28] { --kind-color: var(--warn); }
/* /Pages/Admin/Packages/PackageRow.razor.rz.scp.css */
.pkg-row[b-er52t4mdws] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-5);
    padding: var(--space-5) var(--space-3);
    border-top: 1px solid var(--border-soft);
}

.pkg-row:first-child[b-er52t4mdws] { border-top: 0; }

.pkg-row-main[b-er52t4mdws] {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: var(--space-2);
    min-width: 0;
}

.pkg-row-head[b-er52t4mdws] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-3);
    min-width: 0;
}

/* The kind's icon sits inline before the name, at the name's size, rather than in a gutter of its own. */
.pkg-row-icon-wrap[b-er52t4mdws] {
    position: relative;
    display: inline-flex;
    flex-shrink: 0;
}

.pkg-row[b-er52t4mdws]  .pkg-row-icon {
    width: 1.25em;
    height: 1.25em;
    color: var(--accent);
}

/* A bridge keeps its kind's icon and carries a link badge at its lower right. */
.pkg-row[b-er52t4mdws]  .pkg-row-bridge {
    position: absolute;
    right: -6px;
    bottom: -6px;
    width: 16px;
    height: 16px;
    padding: var(--space-1);
    border-radius: 50%;
    background: var(--surface);
    color: var(--warn);
}

.pkg-row-name[b-er52t4mdws] {
    min-width: 0;
    overflow-wrap: anywhere;
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--text);
}

.pkg-row-desc[b-er52t4mdws] {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
    max-width: 70ch;
    font-size: var(--text-sm);
    line-height: 1.5;
    color: var(--text-dim);
}

.pkg-row-notes:not(:has(*))[b-er52t4mdws],
.pkg-row-meta:not(:has(*))[b-er52t4mdws] { display: none; }

.pkg-row-notes[b-er52t4mdws] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-4);
    font-size: var(--text-sm);
    color: var(--text-dim);
}

.pkg-row-details > summary[b-er52t4mdws] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    min-height: 28px;
    font-size: var(--text-sm);
    color: var(--text-faint);
    cursor: pointer;
    list-style: none;
}

.pkg-row-details > summary[b-er52t4mdws]::-webkit-details-marker { display: none; }

.pkg-row-details > summary[b-er52t4mdws]::before {
    content: "\25B8";
    display: inline-block;
    transition: transform var(--motion-spring);
}

.pkg-row-details[open] > summary[b-er52t4mdws]::before { transform: rotate(90deg); }

.pkg-row-details > summary:hover[b-er52t4mdws] { color: var(--text-dim); }

.pkg-row-details > summary:focus-visible[b-er52t4mdws] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
    border-radius: var(--radius);
}

.pkg-row-tags[b-er52t4mdws] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-3);
    margin: var(--space-2) 0;
}

.pkg-row-id[b-er52t4mdws] {
    font-family: var(--font-mono, monospace);
    font-size: var(--text-sm);
    color: var(--text-faint);
    overflow-wrap: anywhere;
}

.pkg-row-meta[b-er52t4mdws] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-4);
    font-size: var(--text-sm);
    color: var(--text-faint);
}

.pkg-row-actions[b-er52t4mdws] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-shrink: 0;
}

/* On a narrow page each row is a card: the text across the full width, the actions under it. */
@container page (max-width: 48rem) {
    .pkg-row[b-er52t4mdws] {
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-4);
        margin-block: var(--space-3);
        padding: var(--space-4);
        border: 1px solid var(--border-soft);
        border-radius: var(--radius-row);
        background: var(--surface-2);
    }

    .pkg-row:first-child[b-er52t4mdws] { border-top: 1px solid var(--border-soft); }

    .pkg-row-actions[b-er52t4mdws] {
        flex-wrap: wrap;
        flex-shrink: 1;
    }
}

/* A package's kind shows in its icon: softcode the accent, an application --info, a plugin --special. */
.pkg-row[b-er52t4mdws]  .pkg-row-icon.pkg-kind-application { color: var(--info); }
.pkg-row[b-er52t4mdws]  .pkg-row-icon.pkg-kind-plugin { color: var(--special); }
.pkg-row[b-er52t4mdws]  .pkg-row-icon.pkg-kind-wiki { color: var(--success); }
/* /Pages/Admin/Packages/PluginRow.razor.rz.scp.css */
.pkg-row-reason[b-1j0yvf113k] { color: var(--danger); }
/* /Pages/Admin/PlayerDetail.razor.rz.scp.css */
.adm-char-body[b-7fsebf7qzg] {
	padding: var(--space-5) var(--space-5) var(--space-5);
}

.adm-char-grid[b-7fsebf7qzg] {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-5);
	align-items: start;
}

.adm-char-facts[b-7fsebf7qzg] {
	display: grid;
	grid-template-columns: minmax(0, 10rem) minmax(0, 1fr);
	gap: var(--space-3) var(--space-4);
	margin: 0;
	padding: var(--space-5) var(--space-5) var(--space-5);
}

.adm-char-facts dt[b-7fsebf7qzg] {
	color: var(--text-dim);
	font-size: var(--text-sm);
}

.adm-char-facts dd[b-7fsebf7qzg] {
	margin: 0;
	overflow-wrap: anywhere;
}

.adm-char-mono[b-7fsebf7qzg] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
}

.adm-char-dim[b-7fsebf7qzg] {
	margin-inline-start: 6px;
	font-size: var(--text-sm);
	color: var(--text-faint);
}

@container page (max-width: 48rem) {
	.adm-char-grid[b-7fsebf7qzg] {
		grid-template-columns: minmax(0, 1fr);
	}

	.adm-char-facts[b-7fsebf7qzg] {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--space-1);
	}

	.adm-char-facts dd[b-7fsebf7qzg] {
		margin-block-end: 8px;
	}
}

.adm-char-link[b-7fsebf7qzg] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3);
	margin-top: 8px;
}

.adm-char-link[b-7fsebf7qzg]  .mud-input-control {
	flex: 1 1 12rem;
	margin: 0;
}

.adm-char-role-add[b-7fsebf7qzg] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	margin-top: 8px;
}

.adm-char-role-help[b-7fsebf7qzg] {
	margin-top: 4px;
	font-size: var(--text-sm);
	color: var(--text-faint);
}
/* /Pages/Admin/QueueDiagnostics.razor.rz.scp.css */
.diag-card-body[b-ekorz7rton] { padding: var(--space-5) var(--space-5) var(--space-5); min-width: 0; }
.diag-card-body p[b-ekorz7rton] { margin: 0 0 0.75rem; font-size: var(--text-sm); color: var(--text-dim); }

.diag-controls[b-ekorz7rton] { display: flex; flex-wrap: wrap; gap: var(--space-5); align-items: end; }
.diag-controls--card[b-ekorz7rton] { padding: var(--space-5) var(--space-5); }
.diag-controls label[b-ekorz7rton] { display: flex; flex-direction: column; gap: var(--space-2); font-size: var(--text-sm); color: var(--text-dim); }

.diag-page[b-ekorz7rton]  .diagnostics-table { overflow-x: auto; }
.diag-page[b-ekorz7rton]  table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.diag-page[b-ekorz7rton]  th,
.diag-page[b-ekorz7rton]  td { padding: var(--space-3); text-align: left; border-bottom: 1px solid var(--border-soft); white-space: nowrap; }
.diag-page[b-ekorz7rton]  th { font-family: var(--font-kicker); font-size: var(--text-xs); letter-spacing: var(--kicker-tracking); text-transform: uppercase; color: var(--text-faint); }

button[b-ekorz7rton], select[b-ekorz7rton], input[b-ekorz7rton] {
    color: var(--text);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-row);
    padding: var(--space-3) var(--space-4);
    font: inherit;
    font-size: var(--text-sm);
}
button[b-ekorz7rton] { cursor: pointer; }
button:disabled[b-ekorz7rton] { opacity: .5; cursor: default; }

@container page (max-width: 48rem) {
    .diag-controls[b-ekorz7rton] { align-items: stretch; flex-direction: column; }
    .diag-controls label[b-ekorz7rton] { min-width: 0; }
    .diag-card-body[b-ekorz7rton] { padding: var(--space-4) var(--space-5) var(--space-5); }
}
/* /Pages/Admin/Restrictions.razor.rz.scp.css */
/* the list switch above the list it picks; AdminKeyValueList styles its own cards */
/* /Pages/Admin/Roles/AdminRoles.razor.rz.scp.css */
/* The tabs, the role editor and their parts are child components of this page, so every rule reaches them
   through the page root with ::deep. */
.roleadmin[b-z6k302qzet]  .ra-grow { flex: 1; min-width: 0; }
.roleadmin[b-z6k302qzet]  .ra-titles { display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; }

/* icon sizes */
.roleadmin[b-z6k302qzet]  .ra-ico { font-size: var(--text-base); }
.roleadmin[b-z6k302qzet]  .ra-ico--faint { color: var(--text-faint); }

.roleadmin[b-z6k302qzet]  .ra-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius);
    border: 1px solid var(--border);
    background: var(--surface-2);
    color: var(--text);
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    font-weight: 500;
    cursor: pointer;
    text-decoration: none;
    transition: border-color var(--motion-fade), filter var(--motion-fade);
}
.roleadmin[b-z6k302qzet]  .ra-btn:hover { border-color: rgba(var(--glow), 0.4); }
.roleadmin[b-z6k302qzet]  .ra-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.roleadmin[b-z6k302qzet]  .ra-btn--primary {
    background: var(--accent);
    color: var(--accent-on);
    border-color: transparent;
    font-weight: 600;
    box-shadow: 0 0 18px rgba(var(--glow), 0.25);
}
.roleadmin[b-z6k302qzet]  .ra-btn--primary:hover { filter: brightness(1.08); }
.roleadmin[b-z6k302qzet]  .ra-btn--danger {
    color: var(--danger);
    border-color: color-mix(in srgb, var(--danger) 40%, transparent);
    background: transparent;
}
.roleadmin[b-z6k302qzet]  .ra-btn--danger:hover { border-color: color-mix(in srgb, var(--danger) 70%, transparent); }

.roleadmin[b-z6k302qzet]  .roleadmin-grid {
    display: grid;
    grid-template-columns: 340px minmax(0, 1fr);
    gap: var(--space-5);
}
/* README §3: list and detail stay side by side at the medium tier (the design size); only narrow stacks */
@container page (max-width: 64rem) {
    .roleadmin[b-z6k302qzet]  .roleadmin-grid { grid-template-columns: 280px minmax(0, 1fr); }
}

/* List */
.roleadmin[b-z6k302qzet]  .roleadmin-list { display: flex; flex-direction: column; gap: var(--space-3); }
.roleadmin[b-z6k302qzet]  .ra-category-row .ra-perm-label { display: flex; flex-direction: column; gap: var(--space-3); }
.roleadmin[b-z6k302qzet]  .ra-list-group {
    font-family: var(--font-kicker); font-size: var(--text-xs); letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--text-faint); padding: var(--space-3) var(--space-2) 0;
}
.roleadmin[b-z6k302qzet]  .ra-card {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    text-align: left;
    padding: var(--space-5);
    cursor: pointer;
    background: var(--surface);
    border-radius: var(--radius-card);
    border: 1px solid var(--border);
    transition: border-color var(--motion-fade), box-shadow var(--motion-fade);
}
.roleadmin[b-z6k302qzet]  .ra-card:hover { border-color: rgba(var(--glow), 0.3); }
.roleadmin[b-z6k302qzet]  .ra-card--on {
    border-color: rgba(var(--glow), 0.45);
    box-shadow: 0 0 0 1px rgba(var(--glow), 0.25);
}
.roleadmin[b-z6k302qzet]  .ra-dot {
    width: 12px; height: 12px; border-radius: 99px; flex-shrink: 0;
    box-shadow: var(--shadow);
}
.roleadmin[b-z6k302qzet]  .ra-dot--sm { width: 9px; height: 9px; }
.roleadmin[b-z6k302qzet]  .ra-card-name {
    font-family: var(--font-display); font-size: var(--text-base); font-weight: 600; color: var(--text);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.roleadmin[b-z6k302qzet]  .ra-card-sub { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--text-faint); }
.roleadmin[b-z6k302qzet]  .ra-prio {
    font-family: var(--font-mono); font-size: var(--text-sm); color: var(--text-dim); flex-shrink: 0;
}
.roleadmin[b-z6k302qzet]  .ra-badge {
    font-family: var(--font-kicker); font-size: var(--text-xs); letter-spacing: 0.04em; text-transform: uppercase;
    padding: var(--space-1) var(--space-3); border-radius: 99px; flex-shrink: 0;
    color: var(--special); background: color-mix(in srgb, var(--special) 12%, transparent); border: 1px solid color-mix(in srgb, var(--special) 30%, transparent);
}
.roleadmin[b-z6k302qzet]  .ra-badge--danger {
    color: var(--danger); background: color-mix(in srgb, var(--danger) 12%, transparent); border-color: color-mix(in srgb, var(--danger) 30%, transparent);
}

/* Detail and assignments: KitCards, so their roots carry the card's scope, not this page's */
.roleadmin[b-z6k302qzet]  .roleadmin-detail,
.roleadmin[b-z6k302qzet]  .roleadmin-assign {
    overflow: hidden;
    align-self: start;
}
.roleadmin[b-z6k302qzet]  .ra-empty-detail {
    margin: 1.25rem;
}
.roleadmin[b-z6k302qzet]  .ra-detail-head {
    display: flex; align-items: flex-start; gap: var(--space-5); padding: var(--space-6) var(--space-6);
    border-bottom: 1px solid var(--border-soft);
}
.roleadmin[b-z6k302qzet]  .ra-detail-dot {
    width: 28px; height: 28px; border-radius: 99px; flex-shrink: 0; margin-top: 0.125rem;
    box-shadow: var(--shadow);
}
.roleadmin[b-z6k302qzet]  .ra-detail-name {
    margin: 0; font-family: var(--font-display); font-size: var(--text-lg); font-weight: 600; color: var(--text);
}
.roleadmin[b-z6k302qzet]  .ra-detail-slug { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--accent); margin-top: 0.1875rem; }

.roleadmin[b-z6k302qzet]  .ra-fields {
    display: flex; gap: var(--space-5); flex-wrap: wrap;
    padding: var(--space-5) var(--space-6); border-bottom: 1px solid var(--border-soft);
}
.roleadmin[b-z6k302qzet]  .ra-field { flex: 1; min-width: 160px; }
.roleadmin[b-z6k302qzet]  .ra-field--narrow { flex: 0 0 130px; min-width: 110px; }
.roleadmin[b-z6k302qzet]  .ra-field-label {
    font-family: var(--font-kicker); font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase;
    color: var(--text-faint); margin-bottom: 0.375rem;
}
.roleadmin[b-z6k302qzet]  .ra-input {
    width: 100%;
    padding: var(--space-3) var(--space-4);
    background: var(--surface-3);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    color: var(--text);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    outline: none;
    transition: border-color var(--motion-fade);
}
.roleadmin[b-z6k302qzet]  .ra-input:focus { border-color: var(--accent); }

.roleadmin[b-z6k302qzet]  .ra-section { padding: var(--space-5) var(--space-6); border-bottom: 1px solid var(--border-soft); }
.roleadmin[b-z6k302qzet]  .ra-section:last-child { border-bottom: none; }
.roleadmin[b-z6k302qzet]  .ra-section--actions { display: flex; gap: var(--space-4); flex-wrap: wrap; }
.roleadmin[b-z6k302qzet]  .ra-section-label {
    font-family: var(--font-kicker); font-size: var(--text-xs); letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--text-faint); margin-bottom: 0.625rem;
}

/* Permission matrix */
.roleadmin[b-z6k302qzet]  .ra-perm-card {
    background: var(--surface-3);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    overflow: hidden;
}
.roleadmin[b-z6k302qzet]  .ra-perm-row {
    display: flex; align-items: center; gap: var(--space-6);
    padding: var(--space-5) var(--space-5);
}
.roleadmin[b-z6k302qzet]  .ra-perm-row:not(:first-child) { border-top: 1px solid var(--border-soft); }
.roleadmin[b-z6k302qzet]  .ra-perm-label { flex: 1; min-width: 0; }
.roleadmin[b-z6k302qzet]  .ra-perm-name {
    font-family: var(--font-ui); font-size: var(--text-base); font-weight: 600; color: var(--text); margin-bottom: 0.1875rem;
}
.roleadmin[b-z6k302qzet]  .ra-perm-desc { font-family: var(--font-ui); font-size: var(--text-sm); color: var(--text-dim); }
.roleadmin[b-z6k302qzet]  .ra-perm-scope {
    font-family: var(--font-mono); font-size: var(--text-xs); color: var(--text-faint); display: block; margin-top: 0.125rem;
}
.roleadmin[b-z6k302qzet]  .ra-perm-meta {
    display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-3) var(--space-4); margin-top: 0.375rem;
}
.roleadmin[b-z6k302qzet]  .ra-perm-meta:empty { display: none; }
.roleadmin[b-z6k302qzet]  .ra-perm-meta .ra-perm-scope { margin-top: 0; }

/* The viewer's own access to a scope: "You ✓ Storyteller" */
.roleadmin[b-z6k302qzet]  .ra-access {
    display: inline-flex; align-items: center; gap: var(--space-3);
    padding: var(--space-1) var(--space-3) var(--space-1) var(--space-3);
    border-radius: 99px;
    font-family: var(--font-ui); font-size: var(--text-xs); color: var(--text-dim);
    border: 1px solid var(--border);
    background: var(--surface-2);
}
.roleadmin[b-z6k302qzet]  .ra-access-who {
    font-family: var(--font-kicker); font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase;
    color: var(--text-faint);
}
.roleadmin[b-z6k302qzet]  .ra-access-role { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--text); }
.roleadmin[b-z6k302qzet]  .ra-access--allow { border-color: color-mix(in srgb, var(--success) 35%, transparent); }
.roleadmin[b-z6k302qzet]  .ra-access--allow .ra-ico { color: var(--success); }
.roleadmin[b-z6k302qzet]  .ra-access--deny { border-color: color-mix(in srgb, var(--danger) 35%, transparent); }
.roleadmin[b-z6k302qzet]  .ra-access--deny .ra-ico { color: var(--danger); }

.roleadmin[b-z6k302qzet]  .ra-sr {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* Help notes: an icon and a sentence or two, set apart from the controls */
.roleadmin[b-z6k302qzet]  .ra-notes { display: flex; flex-direction: column; gap: var(--space-4); }
.roleadmin[b-z6k302qzet]  .ra-note {
    display: flex; align-items: flex-start; gap: var(--space-4);
    padding: var(--space-4) var(--space-5);
    border-radius: var(--radius);
    background: var(--surface-2);
    border: 1px solid var(--border-soft);
    font-family: var(--font-ui); font-size: var(--text-sm); line-height: 1.5; color: var(--text-dim);
}
.roleadmin[b-z6k302qzet]  .ra-note-ico { font-size: var(--text-md); color: var(--text-faint); flex-shrink: 0; margin-top: 0.0625rem; }
.roleadmin[b-z6k302qzet]  .ra-note--access { color: var(--text); border-color: rgba(var(--glow), 0.3); }
.roleadmin[b-z6k302qzet]  .ra-note--access .ra-note-ico { color: var(--accent); }

.roleadmin[b-z6k302qzet]  .ra-row-actions { display: flex; align-items: center; gap: var(--space-2); flex-shrink: 0; }

/* Tri-state */
.roleadmin[b-z6k302qzet]  .ra-tristate {
    display: inline-flex;
    padding: var(--space-2);
    gap: var(--space-1);
    border-radius: var(--radius);
    border: 1px solid var(--border);
    background: var(--surface-2);
    flex-shrink: 0;
}
.roleadmin[b-z6k302qzet]  .ra-tri {
    padding: var(--space-2) var(--space-4);
    border: none;
    background: transparent;
    color: var(--text-dim);
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    font-weight: 500;
    border-radius: calc(var(--radius) - 2px);
    cursor: pointer;
    transition: color var(--motion-fade), background var(--motion-fade), box-shadow var(--motion-fade);
}
.roleadmin[b-z6k302qzet]  .ra-tri:hover { color: var(--text); }
.roleadmin[b-z6k302qzet]  .ra-tri--inherit.ra-tri--on {
    background: var(--surface-3); color: var(--text); border: 1px solid var(--border);
}
.roleadmin[b-z6k302qzet]  .ra-tri--allow.ra-tri--on {
    background: color-mix(in srgb, var(--success) 16%, transparent); color: var(--success);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--success) 40%, transparent);
}
.roleadmin[b-z6k302qzet]  .ra-tri--deny.ra-tri--on {
    background: color-mix(in srgb, var(--danger) 16%, transparent); color: var(--danger);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--danger) 40%, transparent);
}

/* Assignments */
.roleadmin[b-z6k302qzet]  .ra-search {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-3) var(--space-3) var(--space-5);
    margin: 1.125rem 1.375rem;
    background: var(--surface-3);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}
.roleadmin[b-z6k302qzet]  .ra-search:focus-within { border-color: var(--accent); }
.roleadmin[b-z6k302qzet]  .ra-search input {
    flex: 1; min-width: 0; padding: var(--space-3) 0; background: transparent; border: none; outline: none;
    color: var(--text); font-family: var(--font-ui); font-size: var(--text-sm);
}
.roleadmin[b-z6k302qzet]  .ra-search input::placeholder { color: var(--text-faint); }

.roleadmin[b-z6k302qzet]  .ra-account-card { }
.roleadmin[b-z6k302qzet]  .ra-account-head {
    display: flex; align-items: flex-start; gap: var(--space-5); padding: var(--space-2) var(--space-6) var(--space-5);
    border-bottom: 1px solid var(--border-soft);
}
.roleadmin[b-z6k302qzet]  .ra-account-email { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--text-dim); margin-top: 0.1875rem; }

.roleadmin[b-z6k302qzet]  .ra-chips { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.roleadmin[b-z6k302qzet]  .ra-empty { font-family: var(--font-ui); font-size: var(--text-sm); color: var(--text-faint); }
.roleadmin[b-z6k302qzet]  .ra-chip {
    display: inline-flex; align-items: center; gap: var(--space-3);
    font-family: var(--font-ui); font-size: var(--text-sm);
    padding: var(--space-2) var(--space-3) var(--space-2) var(--space-4);
    border-radius: 99px;
    background: var(--surface-2);
    color: var(--text);
    border: 1px solid var(--border);
}
.roleadmin[b-z6k302qzet]  .ra-chip-x {
    border: none; background: transparent; color: var(--text-dim);
    cursor: pointer; font-size: var(--text-md); line-height: 1; padding: 0 var(--space-1);
}
.roleadmin[b-z6k302qzet]  .ra-chip-x:hover { color: var(--danger); }
.roleadmin[b-z6k302qzet]  .ra-chip-reach { color: var(--text-faint); }
.roleadmin[b-z6k302qzet]  .ra-add-chip {
    display: inline-flex; align-items: center; gap: var(--space-3);
    font-family: var(--font-ui); font-size: var(--text-sm);
    padding: var(--space-2) var(--space-4);
    border-radius: 99px;
    background: transparent;
    color: var(--text-dim);
    border: 1px dashed var(--border);
    cursor: pointer;
    transition: border-color var(--motion-fade), color var(--motion-fade);
}
.roleadmin[b-z6k302qzet]  .ra-add-chip:hover { border-color: rgba(var(--glow), 0.4); color: var(--accent); }

@container page (max-width: 48rem) {
    .roleadmin[b-z6k302qzet]  .roleadmin-grid { grid-template-columns: minmax(0, 1fr); }

    /* Permission rows: stack the label above a full-width tri-state for big touch targets. */
    .roleadmin[b-z6k302qzet]  .ra-perm-row { flex-direction: column; align-items: stretch; gap: var(--space-4); }
    .roleadmin[b-z6k302qzet]  .ra-tristate { width: 100%; justify-content: space-between; }
    .roleadmin[b-z6k302qzet]  .ra-tri { flex: 1; text-align: center; padding: var(--space-4) var(--space-3); }
    .roleadmin[b-z6k302qzet]  .ra-field--narrow { flex: 1 1 140px; }
}

.roleadmin[b-z6k302qzet]  .ra-override-add {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    align-items: center;
    margin-top: 8px;
}

.roleadmin[b-z6k302qzet]  .ra-override-add .ra-input {
    flex: 1 1 200px;
    max-width: 320px;
}

.roleadmin[b-z6k302qzet]  .ra-field-help {
    margin-top: 6px;
    font-size: 0.85em;
    color: var(--text-faint);
}
/* /Pages/Admin/Roles/RoleEditDialog.razor.rz.scp.css */
.role-edit-dialog[b-8lv7i6gfd2] {
    container-type: inline-size;
}

@container (max-width: 48rem) {
    .role-edit-dialog[b-8lv7i6gfd2]  .mud-grid-item-sm-6 {
        flex-basis: 100%;
        max-width: 100%;
    }
}
/* /Pages/Admin/Scenes/AdminPoseTypes.razor.rz.scp.css */
.adm-pose-add-form[b-ijdtcfxt5t] {
	display: grid;
	grid-template-columns: minmax(140px, 1fr) minmax(180px, 2fr) auto;
	align-items: start;
	gap: var(--space-4);
	padding: var(--space-5) var(--space-5) var(--space-5);
}

.adm-pose-problem-list[b-ijdtcfxt5t] {
	margin: 0;
	padding: var(--space-4) var(--space-5) var(--space-5) var(--space-7);
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	color: var(--text);
}

.adm-pose-problem code[b-ijdtcfxt5t] {
	font-family: var(--font-mono);
	color: var(--warn);
	margin-right: 8px;
}

.adm-pose-type-body[b-ijdtcfxt5t] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--space-5) var(--space-5) var(--space-5);
}

/* The sample is drawn as a story draws it, in the current theme, and is not itself a control. */
.adm-pose-sample[b-ijdtcfxt5t] {
	padding: var(--space-3) var(--space-5);
	border: 1px dashed var(--border);
	border-radius: var(--radius-row);
	background: var(--bg);
}

.adm-pose-sample-label[b-ijdtcfxt5t] {
	display: block;
	font-size: var(--text-xs);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--text-dim);
}

.adm-pose-fields[b-ijdtcfxt5t] {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	align-items: center;
	gap: var(--space-4);
}

.adm-pose-tone-swatch[b-ijdtcfxt5t] {
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-right: 8px;
	border-radius: 50%;
	background: var(--pose-tone);
	vertical-align: middle;
	border: 1px solid var(--border);
}

[b-ijdtcfxt5t] .adm-pose-icon-glyph {
	margin-right: 8px;
	vertical-align: middle;
}

.adm-pose-actions[b-ijdtcfxt5t] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	flex-wrap: wrap;
}

.adm-pose-spacer[b-ijdtcfxt5t] {
	flex: 1;
}

.adm-pose-remove-ask[b-ijdtcfxt5t] {
	flex: 1;
	font-size: var(--text-sm);
	color: var(--text);
}

@container page (max-width: 48rem) {
	.adm-pose-add-form[b-ijdtcfxt5t] {
		grid-template-columns: 1fr;
	}
}
/* /Pages/Admin/Secrets.razor.rz.scp.css */
/* the form: name, value and the capsule on one row, the capsule level with the fields */
.secret-form[b-r3fmyw0y3k] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-5) var(--space-5) var(--space-5);
	min-width: 0;
	flex-wrap: wrap;
}

.secret-form[b-r3fmyw0y3k]  .secret-field {
	flex: 1 1 200px;
	min-width: 0;
	margin: 0;
}

.secret-form[b-r3fmyw0y3k]  .secret-field--name .mud-input-slot {
	font-family: var(--font-mono);
}

.secret-form[b-r3fmyw0y3k]  .secret-save {
	flex-shrink: 0;
}

/* the hosts take a line of their own under the name and value; Save follows them */
.secret-form[b-r3fmyw0y3k]  .secret-hosts-editor {
	flex: 1 1 100%;
}

.secret-form[b-r3fmyw0y3k]  .secret-save {
	margin-left: auto;
}

.secret-hosts-form[b-r3fmyw0y3k] {
	display: flex;
	align-items: flex-end;
	gap: var(--space-3);
	flex-wrap: wrap;
	margin-top: 6px;
}

.secret-hosts-form[b-r3fmyw0y3k]  .secret-hosts-editor {
	flex: 1 1 240px;
}

.secret-hosts[b-r3fmyw0y3k] {
	font-family: var(--font-mono);
}

.secret-empty[b-r3fmyw0y3k] {
	margin: 0;
	padding: var(--space-5) var(--space-5) var(--space-5);
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.secret-rows[b-r3fmyw0y3k] {
	list-style: none;
	margin: 0;
	padding: 0;
}

.secret-row[b-r3fmyw0y3k] {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	padding: var(--space-4) var(--space-4) var(--space-4) var(--space-5);
}

.secret-row:not(:first-child)[b-r3fmyw0y3k] {
	border-top: 1px solid var(--border-soft);
}

.secret-row-text[b-r3fmyw0y3k] {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: var(--space-1);
	min-width: 0;
}

.secret-row-head[b-r3fmyw0y3k] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	flex-wrap: wrap;
}

.secret-name[b-r3fmyw0y3k] {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--text);
}

.secret-sub[b-r3fmyw0y3k] {
	font-size: var(--text-sm);
	color: var(--text-dim);
	overflow-wrap: anywhere;
}

.secret-row-actions[b-r3fmyw0y3k] {
	display: flex;
	flex-shrink: 0;
}

/* a narrow page stacks the form, the capsule under the fields */
@container page (max-width: 48rem) {
	.secret-form[b-r3fmyw0y3k] {
		flex-direction: column;
		align-items: stretch;
	}

	.secret-form[b-r3fmyw0y3k]  .secret-field {
		flex: 0 0 auto;
	}
}
/* /Pages/Admin/Sitelock.razor.rz.scp.css */
/* the rule list in the header description; the header is a kit component, so anchor on the page root */
.config-section-page[b-t4mv8kcwl3]  .kit-page-desc code {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text);
	background: var(--surface-2);
	border-radius: 4px;
	padding: var(--space-1) var(--space-2);
}
/* /Pages/Admin/Snapshots/AdminSnapshots.razor.rz.scp.css */
.snapshots-body[b-zdxlm224ya] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    padding: var(--space-5) var(--space-5) var(--space-5);
    min-width: 0;
}

.snapshots-lookup[b-zdxlm224ya] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
}

.snapshots pre[b-zdxlm224ya] {
    margin: 0;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    font-family: var(--font-mono);
}

.snapshots[b-zdxlm224ya]  table {
    width: 100%;
    table-layout: fixed;
}

.snapshots[b-zdxlm224ya]  td {
    vertical-align: top;
    overflow-wrap: anywhere;
}

@container page (max-width: 48rem) {
    .snapshots-lookup[b-zdxlm224ya] {
        flex-direction: column;
        align-items: stretch;
    }

    .snapshots[b-zdxlm224ya]  .mud-button-root {
        width: 100%;
    }

    .snapshots[b-zdxlm224ya]  .mud-table-container {
        overflow-x: auto;
    }

    .snapshots[b-zdxlm224ya]  table {
        min-width: 30rem;
        font-size: var(--text-sm);
    }
}
/* /Pages/Admin/SuggestionManagement.razor.rz.scp.css */
.sugg-panels[b-zllamocvx4] {
    padding: var(--space-3) var(--space-3) var(--space-3);
}

.sugg-panels[b-zllamocvx4]  .mud-expand-panel {
    background: transparent;
}

.sugg-panel-title[b-zllamocvx4] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    width: 100%;
}

.sugg-panel-title[b-zllamocvx4]  .sugg-panel-icon {
    color: var(--accent);
}

.sugg-panel-name[b-zllamocvx4] {
    font-weight: 600;
    color: var(--text);
}

.sugg-panel-inner[b-zllamocvx4] {
    padding: var(--space-5);
    background: var(--surface-2);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-tile);
}

.sugg-panel-inner[b-zllamocvx4]  .sugg-words-label {
    padding: var(--space-2) 0 0;
}

.sugg-words-box[b-zllamocvx4] {
    max-height: 400px;
    overflow-y: auto;
    padding: var(--space-4);
    background: var(--surface-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-row);
}

.sugg-words-box[b-zllamocvx4]  .sugg-words {
    flex-wrap: wrap;
}

.sugg-words-box[b-zllamocvx4]  .sugg-word {
    font-family: var(--font-mono);
    border-color: rgba(var(--glow), 0.3);
    color: var(--accent);
    border-radius: 99px;
}
/* /Pages/Admin/Themes/AdminThemes.razor.rz.scp.css */
.adm-theme-layout[b-qgmno4zomt] {
	display: grid;
	grid-template-columns: 15rem minmax(0, 1fr);
	/* The preview's row takes only its own height; the theme list's length goes to the editor's row. */
	grid-template-rows: auto 1fr;
	grid-template-areas: "list preview" "list editor";
	gap: var(--space-5);
	align-items: start;
}

.adm-theme-list[b-qgmno4zomt] { grid-area: list; }
.adm-theme-layout[b-qgmno4zomt]  .adm-theme-editor { grid-area: editor; }

/* The draft as a small page: above the editor, or beside it, held in view, where the page is wide enough. */
.adm-theme-preview[b-qgmno4zomt] {
	grid-area: preview;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	max-width: 26rem;
	min-width: 0;
}

.adm-theme-preview[b-qgmno4zomt]  .theme-preview {
	font-size: var(--text-sm);
}

@container page (min-width: 90rem) {
	.adm-theme-layout[b-qgmno4zomt] {
		grid-template-columns: 15rem minmax(0, 1fr) 20rem;
		grid-template-rows: auto;
		grid-template-areas: "list editor preview";
	}

	.adm-theme-preview[b-qgmno4zomt] {
		position: sticky;
		top: var(--space-5);
	}
}

.adm-theme-list[b-qgmno4zomt] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.adm-theme-item[b-qgmno4zomt] {
	justify-content: flex-start;
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-3);
	border: 1px solid var(--border);
	border-radius: var(--radius-row);
	background: var(--surface);
	color: var(--text);
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.adm-theme-item--current[b-qgmno4zomt] {
	border-color: var(--accent);
	box-shadow: 0 0 0 1px var(--accent) inset;
}

.adm-theme-item--new[b-qgmno4zomt] {
	cursor: default;
}

.adm-theme-item:focus-visible[b-qgmno4zomt] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.adm-theme-item-text[b-qgmno4zomt] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	min-width: 0;
}

.adm-theme-item-name[b-qgmno4zomt] {
	font-weight: 600;
	overflow-wrap: anywhere;
}

.adm-theme-item-tags[b-qgmno4zomt] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
}

.adm-theme-tag[b-qgmno4zomt] {
	padding: var(--space-1) var(--space-3);
	border: 1px solid var(--border);
	border-radius: 9px;
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--text-dim);
}

.adm-theme-tag--default[b-qgmno4zomt] {
	border-color: var(--accent);
	color: var(--accent);
}

.adm-theme-tag--draft[b-qgmno4zomt] {
	border-color: var(--warn);
	color: var(--warn);
}

.adm-theme-body[b-qgmno4zomt] {
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
	padding: var(--space-5) var(--space-5) var(--space-5);
}

.adm-theme-meta[b-qgmno4zomt] {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	gap: var(--space-4) var(--space-5);
	align-items: center;
}

.adm-theme-mode[b-qgmno4zomt] {
	display: inline-flex;
	border: 1px solid var(--border);
	border-radius: var(--radius-row);
	overflow: hidden;
}

.adm-theme-mode-choice[b-qgmno4zomt] {
	display: inline-flex;
	align-items: center;
	gap: var(--space-3);
	min-height: 36px;
	padding: 0 var(--space-4);
	border: none;
	background: var(--surface-2);
	color: var(--text-dim);
	font: inherit;
	font-size: var(--text-sm);
	cursor: pointer;
}

.adm-theme-mode-choice.is-on[b-qgmno4zomt] {
	background: var(--accent);
	color: var(--accent-on);
}

.adm-theme-mode-choice:focus-visible[b-qgmno4zomt] {
	outline: 2px solid var(--accent);
	outline-offset: -2px;
}

.adm-theme-mode-choice:disabled[b-qgmno4zomt] {
	cursor: default;
}

.adm-theme-group[b-qgmno4zomt] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

/* The Simple / Complex / Custom switch sits at its own width, not the group's. */
.adm-theme-edit-mode[b-qgmno4zomt] {
	align-self: flex-start;
}

.adm-theme-subtitle[b-qgmno4zomt] {
	margin: 6px 0 0;
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--text-dim);
}

.adm-theme-group-title[b-qgmno4zomt] {
	margin: 0;
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	font-weight: 400;
	letter-spacing: var(--kicker-tracking);
	text-transform: uppercase;
	color: var(--text-faint);
}

.adm-theme-hint[b-qgmno4zomt] {
	margin: 0;
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.adm-theme-tokens[b-qgmno4zomt] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
	gap: var(--space-3);
}

.adm-theme-styles[b-qgmno4zomt] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
	gap: var(--space-4);
}

/* Each title face listed in itself. */
.adm-theme-face[b-qgmno4zomt] {
	font-family: var(--font-display);
}

.adm-theme-contrast[b-qgmno4zomt] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
	gap: var(--space-3) var(--space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.adm-theme-contrast li[b-qgmno4zomt] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.adm-theme-contrast-sample[b-qgmno4zomt] {
	display: inline-grid;
	flex: none;
	place-items: center;
	width: 34px;
	height: 26px;
	border: 1px solid;
	border-radius: 6px;
	font-weight: 600;
}

.adm-theme-contrast-pair[b-qgmno4zomt] {
	flex: 1;
	min-width: 0;
}

.adm-theme-contrast-ratio[b-qgmno4zomt] {
	font-family: var(--font-mono);
	color: var(--text);
}

.adm-theme-contrast--low .adm-theme-contrast-ratio[b-qgmno4zomt] {
	color: var(--warn);
}

[b-qgmno4zomt] .adm-theme-ok {
	color: var(--accent);
}

[b-qgmno4zomt] .adm-theme-low {
	color: var(--warn);
}

.adm-theme-actions[b-qgmno4zomt] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3);
	padding-top: var(--space-4);
	border-top: 1px solid var(--border-soft);
}

.adm-theme-spacer[b-qgmno4zomt] {
	flex: 1;
}

/* Generate: a seed, a harmony and a contrast level, a preset, or palette JSON. */
.adm-theme-generate[b-qgmno4zomt] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
	gap: var(--space-4);
	align-items: center;
}

.adm-theme-generate--json[b-qgmno4zomt] {
	grid-template-columns: minmax(0, 1fr) auto;
}

.adm-theme-guide[b-qgmno4zomt] {
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-row);
	padding: var(--space-3) var(--space-4);
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.adm-theme-guide summary[b-qgmno4zomt] {
	cursor: pointer;
	color: var(--text);
	font-weight: 600;
}

.adm-theme-guide p[b-qgmno4zomt] {
	margin: 8px 0 0;
}

.adm-theme-code-sample[b-qgmno4zomt],
.adm-theme-sheet[b-qgmno4zomt] {
	box-sizing: border-box;
	width: 100%;
	margin: 8px 0 0;
	padding: var(--space-4) var(--space-4);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--code-bg);
	color: var(--code-text);
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	line-height: 1.5;
	tab-size: 4;
}

.adm-theme-code-sample[b-qgmno4zomt] {
	overflow-x: auto;
	white-space: pre;
}

.adm-theme-sheet[b-qgmno4zomt] {
	resize: vertical;
	min-height: 16rem;
}

.adm-theme-sheet:focus-visible[b-qgmno4zomt] {
	outline: 2px solid var(--accent);
	outline-offset: 1px;
}

.adm-theme-sheet-bar[b-qgmno4zomt] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.adm-theme-sheet-problems[b-qgmno4zomt] {
	margin: 0;
	padding-left: var(--space-6);
	color: var(--danger);
	font-size: var(--text-sm);
}

.adm-theme[b-qgmno4zomt]  .adm-theme-code textarea {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
}

@container page (max-width: 48rem) {
	.adm-theme-layout[b-qgmno4zomt] {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto;
		grid-template-areas: "list" "preview" "editor";
	}

	.adm-theme-list[b-qgmno4zomt] {
		flex-direction: row;
		overflow-x: auto;
		padding-bottom: var(--space-2);
	}

	.adm-theme-item[b-qgmno4zomt] {
		flex: none;
		max-width: 15rem;
	}

	.adm-theme-meta[b-qgmno4zomt] {
		grid-template-columns: minmax(0, 1fr);
		justify-items: start;
	}

	.adm-theme-body[b-qgmno4zomt] {
		padding: var(--space-4);
	}
}
/* /Pages/AppBuilder.razor.rz.scp.css */
/* The builder page and the parts its child components share. Child components render inside .bld-page, so their
   classes are reached with ::deep; what opens in a popover is styled in that component's own file. */

/* .page-solid (shell.css) makes the page opaque and full height, so nothing of a theme's atmosphere drifts under the
   editor. */
.bld-page[b-4dtok9cema] {
    box-sizing: border-box;
    padding: var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    min-width: 0;
}

/* ------------------------------------------------------------------ bar */

.bld-bar[b-4dtok9cema] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    flex-wrap: wrap;
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--border-soft);
}

.bld-back[b-4dtok9cema] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    min-height: 40px;
    padding: 0 var(--space-3) 0 var(--space-1);
    border: 0;
    border-radius: var(--radius);
    background: none;
    color: var(--text-dim);
    font: inherit;
    cursor: pointer;
}

.bld-back:hover[b-4dtok9cema] {
    color: var(--text);
    background: var(--surface-2);
}

.bld-bar-title[b-4dtok9cema] {
    flex: 1 1 240px;
    min-width: 0;
}

.bld-bar-title h1[b-4dtok9cema] {
    margin: 0;
    font-size: var(--text-lg);
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bld-bar-sub[b-4dtok9cema] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    margin: 2px 0 0;
    color: var(--text-dim);
    font-size: var(--text-sm);
}

.bld-address[b-4dtok9cema] {
    padding: var(--space-1) var(--space-3);
    border-radius: 6px;
    background: var(--surface-2);
    color: var(--text);
}

.bld-bar-tools[b-4dtok9cema] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

[b-4dtok9cema] .bld-icon-button {
    display: inline-grid;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: var(--radius);
    background: none;
    color: var(--text-dim);
    cursor: pointer;
}

[b-4dtok9cema] .bld-icon-button:hover:not(:disabled) {
    background: var(--surface-2);
    color: var(--text);
}

[b-4dtok9cema] .bld-icon-button:disabled {
    opacity: .35;
    cursor: default;
}

[b-4dtok9cema] .bld-icon-button--framed {
    width: 40px;
    height: 40px;
    border: 1px solid var(--border-soft);
    background: var(--surface);
}

/* ------------------------------------------------------------------ steps */

.bld-steps[b-4dtok9cema] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    list-style: none;
    margin: 0;
    padding: 0;
}

.bld-step[b-4dtok9cema] {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    gap: var(--space-3);
    min-height: 36px;
    padding: var(--space-2) var(--space-4) var(--space-2) var(--space-3);
    border: 1px solid var(--border-soft);
    border-radius: 999px;
    background: var(--surface);
    color: var(--text-dim);
    font: inherit;
    cursor: pointer;
}

.bld-step:disabled[b-4dtok9cema] {
    cursor: default;
    opacity: .5;
}

.bld-step--on[b-4dtok9cema] {
    border-color: var(--accent);
    color: var(--text);
    font-weight: 600;
}

.bld-step--done[b-4dtok9cema] {
    color: var(--text);
}

.bld-step-n[b-4dtok9cema] {
    display: inline-grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--surface-2);
    font-size: var(--text-sm);
}

.bld-step--on .bld-step-n[b-4dtok9cema] {
    background: var(--accent);
    color: var(--accent-on);
}

.bld-step--done[b-4dtok9cema]  .mud-icon-root {
    color: var(--success);
}

.bld-badge[b-4dtok9cema] {
    min-width: 20px;
    padding: 0 var(--space-3);
    border-radius: 999px;
    background: var(--warn-tint);
    color: var(--warn);
    font-size: var(--text-sm);
    font-weight: 600;
    text-align: center;
}

/* ------------------------------------------------------------------ shared text and controls */

[b-4dtok9cema] .bld-h2 {
    margin: 0 0 4px;
    font-size: var(--text-md);
    font-weight: 600;
}

[b-4dtok9cema] .bld-h3 {
    margin: 0 0 8px;
    font-size: var(--text-base);
    font-weight: 600;
}

[b-4dtok9cema] .bld-pane-title {
    margin: 0;
    color: var(--text-dim);
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

[b-4dtok9cema] .bld-note {
    margin: 0;
    color: var(--text-dim);
    font-size: var(--text-sm);
}

[b-4dtok9cema] .bld-sub {
    margin: 12px 0 4px;
    font-weight: 600;
    font-size: var(--text-base);
}

[b-4dtok9cema] .bld-mono input,
[b-4dtok9cema] .bld-mono {
    font-family: var(--font-mono);
}

[b-4dtok9cema] .bld-mono .mud-input-helper-text {
    font-family: var(--font-ui);
}

[b-4dtok9cema] .bld-link-button {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 32px;
    padding: 0 var(--space-2);
    border: 0;
    background: none;
    color: var(--accent);
    font: inherit;
    font-size: var(--text-base);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

[b-4dtok9cema] .bld-link-button--quiet {
    color: var(--text-dim);
}

[b-4dtok9cema] .bld-link-button--warn {
    color: var(--warn);
    text-align: left;
}

[b-4dtok9cema] .bld-row {
    display: flex;
    gap: var(--space-3);
    align-items: center;
    flex-wrap: wrap;
}

[b-4dtok9cema] .bld-narrow {
    max-width: 360px;
}

[b-4dtok9cema] .bld-segmented,
.bld-panes[b-4dtok9cema] {
    display: inline-flex;
    gap: var(--space-1);
    padding: var(--space-2);
    border-radius: var(--radius);
    background: var(--surface-2);
}

[b-4dtok9cema] .bld-segment {
    min-height: 32px;
    padding: 0 var(--space-4);
    border: 0;
    border-radius: calc(var(--radius) - 2px);
    background: none;
    color: var(--text-dim);
    font: inherit;
    font-size: var(--text-sm);
    cursor: pointer;
}

[b-4dtok9cema] .bld-segment--on {
    background: var(--surface);
    color: var(--text);
    font-weight: 600;
    box-shadow: var(--shadow);
}

[b-4dtok9cema] .bld-ok {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    margin: 0;
    color: var(--success);
}

[b-4dtok9cema] .bld-warn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--warn);
}

[b-4dtok9cema] .bld-tag {
    display: inline-block;
    padding: 0 var(--space-3);
    border-radius: 999px;
    background: var(--surface-2);
    color: var(--text-dim);
    font-size: var(--text-sm);
}

[b-4dtok9cema] .bld-tag--warn {
    background: var(--warn-tint);
    color: var(--warn);
}

/* ------------------------------------------------------------------ start */

.bld-banner[b-4dtok9cema] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--border-soft);
    border-left: 3px solid var(--accent);
    border-radius: var(--radius);
    background: var(--surface);
}

.bld-banner > span[b-4dtok9cema] {
    flex: 1 1 200px;
}

.bld-start[b-4dtok9cema] {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    gap: var(--space-6);
    align-items: start;
}

.bld-start-new[b-4dtok9cema],
.bld-start-mine[b-4dtok9cema] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    min-width: 0;
}

.bld-cards[b-4dtok9cema] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: var(--space-4);
    margin-top: 4px;
}

.bld-card[b-4dtok9cema] {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: var(--space-2);
    padding: var(--space-4);
    text-align: left;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--text);
    font: inherit;
    cursor: pointer;
}

.bld-card:hover[b-4dtok9cema],
.bld-card:focus-visible[b-4dtok9cema] {
    border-color: var(--accent);
}

.bld-card-title[b-4dtok9cema] {
    font-weight: 600;
}

.bld-card-text[b-4dtok9cema] {
    color: var(--text-dim);
    font-size: var(--text-sm);
}

/* A small drawing of what each template starts as. */
.bld-card-sketch[b-4dtok9cema] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    height: 64px;
    margin-bottom: 6px;
    padding: var(--space-4);
    border-radius: calc(var(--radius) - 2px);
    background: var(--surface-2);
}

.bld-card-sketch span[b-4dtok9cema] {
    height: 8px;
    border-radius: 3px;
    background: color-mix(in srgb, var(--text) 14%, transparent);
}

.bld-card-sketch span:nth-child(1)[b-4dtok9cema] {
    width: 45%;
}

.bld-card-sketch--blank span[b-4dtok9cema] {
    background: none;
    border: 1px dashed color-mix(in srgb, var(--text) 22%, transparent);
}

.bld-card-sketch--sheet[b-4dtok9cema] {
    flex-direction: row;
    flex-wrap: wrap;
}

.bld-card-sketch--sheet span[b-4dtok9cema] {
    flex: 1 1 28%;
    height: 18px;
}

.bld-card-sketch--sheet span:nth-child(1)[b-4dtok9cema] {
    flex-basis: 100%;
    height: 8px;
}

.bld-card-sketch--request span:nth-child(2)[b-4dtok9cema],
.bld-card-sketch--profile span:nth-child(2)[b-4dtok9cema] {
    height: 12px;
    border: 1px solid color-mix(in srgb, var(--text) 22%, transparent);
    background: none;
}

.bld-card-sketch--request span:nth-child(3)[b-4dtok9cema],
.bld-card-sketch--profile span:nth-child(3)[b-4dtok9cema] {
    width: 30%;
    margin-left: auto;
    background: var(--accent);
}

.bld-apps[b-4dtok9cema] {
    margin: 0;
    padding: 0;
    list-style: none;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius);
    background: var(--surface);
}

.bld-apps li[b-4dtok9cema] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    min-height: 56px;
    padding: var(--space-3) var(--space-4);
}

.bld-apps li + li[b-4dtok9cema] {
    border-top: 1px solid var(--border-soft);
}

.bld-app-text[b-4dtok9cema] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.bld-app-name[b-4dtok9cema] {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bld-open-by summary[b-4dtok9cema] {
    min-height: 32px;
    color: var(--text-dim);
    font-size: var(--text-base);
    cursor: pointer;
}

/* ------------------------------------------------------------------ what it is */

.bld-panel[b-4dtok9cema] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    max-width: 900px;
}

.bld-panel--wide[b-4dtok9cema] {
    max-width: 1200px;
}

.bld-grid2[b-4dtok9cema] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--space-4);
}

.bld-fieldset[b-4dtok9cema] {
    margin: 0;
    padding: var(--space-3) var(--space-4) var(--space-4);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius);
}

.bld-fieldset legend[b-4dtok9cema] {
    padding: 0 var(--space-2);
    font-weight: 600;
    font-size: var(--text-base);
}

/* ------------------------------------------------------------------ lay it out */

.bld-panes[b-4dtok9cema] {
    display: none;
}

.bld-layout[b-4dtok9cema] {
    display: grid;
    grid-template-columns: minmax(220px, 280px) minmax(260px, 340px) minmax(0, 1fr);
    gap: var(--space-5);
    align-items: start;
}

.bld-layout-outline[b-4dtok9cema],
.bld-layout-settings[b-4dtok9cema],
.bld-layout-preview[b-4dtok9cema] {
    min-width: 0;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius);
    background: var(--surface);
    padding: var(--space-4);
}

.bld-layout-outline[b-4dtok9cema],
.bld-layout-settings[b-4dtok9cema] {
    position: sticky;
    top: 8px;
    max-height: calc(100dvh - var(--topbar-h, 56px) - 24px);
    overflow: auto;
}

[b-4dtok9cema] .bld-settings-kind {
    margin: 0 0 8px;
    color: var(--text-dim);
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

/* Outline */

[b-4dtok9cema] .bld-outline-head {
    margin-bottom: 6px;
}

[b-4dtok9cema] .bld-tree,
[b-4dtok9cema] .bld-tree ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

[b-4dtok9cema] .bld-tree ul {
    margin-left: 12px;
    padding-left: var(--space-3);
    border-left: 1px solid var(--border-soft);
}

[b-4dtok9cema] .bld-row-node {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-1);
    min-height: 36px;
    border-radius: var(--radius);
}

[b-4dtok9cema] .bld-row-node:hover {
    background: var(--surface-2);
}

[b-4dtok9cema] .bld-row-node--on,
[b-4dtok9cema] .bld-row-node--on:hover {
    background: color-mix(in srgb, var(--accent) 16%, transparent);
}

[b-4dtok9cema] .bld-grip {
    display: inline-grid;
    place-items: center;
    width: 16px;
    color: var(--text-faint);
    cursor: grab;
}

[b-4dtok9cema] .bld-row-name {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-height: 36px;
    padding: 0 var(--space-2);
    border: 0;
    background: none;
    color: var(--text);
    font: inherit;
    font-size: var(--text-base);
    text-align: left;
    justify-content: flex-start;
    cursor: pointer;
}

[b-4dtok9cema] .bld-row-kind {
    flex: none;
    padding: 0 var(--space-3);
    border-radius: 6px;
    background: var(--surface-2);
    color: var(--text-dim);
    font-size: var(--text-xs);
}

[b-4dtok9cema] .bld-row-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-4dtok9cema] .bld-dot {
    flex: none;
    width: 8px;
    height: 8px;
    margin-left: auto;
    border-radius: 50%;
    background: var(--warn);
}

/* The tools stay in the tab order; they only show on hover, focus or selection, laid over the end of the row so a
   long name keeps its width the rest of the time. */
[b-4dtok9cema] .bld-row-tools {
    position: absolute;
    right: 2px;
    top: 50%;
    display: inline-flex;
    border-radius: var(--radius);
    background: var(--surface);
    box-shadow: var(--shadow);
    opacity: 0;
    transform: translateY(-50%);
}

[b-4dtok9cema] .bld-row-node:hover .bld-row-tools,
[b-4dtok9cema] .bld-row-node:focus-within .bld-row-tools,
[b-4dtok9cema] .bld-row-node--on .bld-row-tools {
    opacity: 1;
}

[b-4dtok9cema] .bld-tree-add {
    padding: var(--space-1) 0;
}

[b-4dtok9cema] .bld-issues {
    margin-top: 12px;
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius);
    background: var(--warn-tint);
}

[b-4dtok9cema] .bld-issues-title {
    margin: 0 0 4px;
    color: var(--warn);
    font-weight: 600;
    font-size: var(--text-sm);
}

[b-4dtok9cema] .bld-issues ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Settings */

[b-4dtok9cema] .bld-settings {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

[b-4dtok9cema] .bld-settings-name {
    margin: 0;
    font-size: var(--text-md);
    font-weight: 600;
    overflow-wrap: anywhere;
}

[b-4dtok9cema] .bld-inline-problems {
    margin: 4px 0;
    padding: var(--space-3) var(--space-4) var(--space-3) var(--space-6);
    border-radius: var(--radius);
    background: var(--warn-tint);
    color: var(--warn);
    font-size: var(--text-sm);
}

[b-4dtok9cema] .bld-tabs {
    display: flex;
    gap: var(--space-1);
    margin: 6px 0 4px;
    border-bottom: 1px solid var(--border-soft);
    overflow-x: auto;
}

[b-4dtok9cema] .bld-tab {
    flex: none;
    min-height: 36px;
    padding: 0 var(--space-4);
    border: 0;
    border-bottom: 2px solid transparent;
    background: none;
    color: var(--text-dim);
    font: inherit;
    font-size: var(--text-sm);
    cursor: pointer;
}

[b-4dtok9cema] .bld-tab--on {
    border-bottom-color: var(--accent);
    color: var(--text);
    font-weight: 600;
}

[b-4dtok9cema] .bld-tabpanel {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

[b-4dtok9cema] .bld-key {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

[b-4dtok9cema] .bld-key-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--text-dim);
    font-size: var(--text-sm);
}

[b-4dtok9cema] .bld-pairs {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

[b-4dtok9cema] .bld-insert {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--text-dim);
}

[b-4dtok9cema] .bld-chip-button {
    min-height: 28px;
    padding: 0 var(--space-3);
    border: 1px solid var(--border-soft);
    border-radius: 999px;
    background: var(--surface-2);
    color: var(--text);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    cursor: pointer;
}

[b-4dtok9cema] .bld-chip-button:hover {
    border-color: var(--accent);
}

[b-4dtok9cema] .bld-example {
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius);
    background: var(--surface-2);
    font-size: var(--text-sm);
}

[b-4dtok9cema] .bld-example p {
    margin: 0 0 2px;
}

[b-4dtok9cema] .bld-example code {
    display: block;
    overflow-wrap: anywhere;
    color: var(--code-text, var(--text));
}

/* Preview */

[b-4dtok9cema] .bld-preview-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-3) var(--space-4);
    margin-bottom: 10px;
}

[b-4dtok9cema] .bld-preview-bar .bld-pane-title {
    margin-right: auto;
}

[b-4dtok9cema] .bld-preview-stage {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4);
    border-radius: var(--radius);
    background: var(--surface-2);
}

[b-4dtok9cema] .bld-preview-frame {
    /* Preview content must query the simulated viewport, not the builder's desktop page. */
    container: page / inline-size;
    width: 100%;
    min-height: 160px;
    padding: var(--space-4);
    border-radius: var(--radius);
    background: var(--bg);
    box-shadow: var(--shadow);
    overflow: auto;
}

[b-4dtok9cema] .bld-preview-frame--widget {
    max-width: 360px;
}

[b-4dtok9cema] .bld-preview-frame--phone {
    max-width: 390px;
    min-height: 560px;
}

/* ------------------------------------------------------------------ values */

.bld-table-wrap[b-4dtok9cema] {
    overflow-x: auto;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius);
    background: var(--surface);
}

.bld-map[b-4dtok9cema] {
    width: 100%;
    border-collapse: collapse;
}

.bld-map th[b-4dtok9cema],
.bld-map td[b-4dtok9cema] {
    padding: var(--space-3) var(--space-4);
    text-align: left;
    vertical-align: top;
}

.bld-map thead th[b-4dtok9cema] {
    color: var(--text-dim);
    font-size: var(--text-sm);
    font-weight: 600;
    border-bottom: 1px solid var(--border-soft);
}

.bld-map tbody tr + tr[b-4dtok9cema] {
    border-top: 1px solid var(--border-soft);
}

.bld-map tbody th[b-4dtok9cema] {
    font-weight: normal;
    min-width: 140px;
}

.bld-key-name[b-4dtok9cema] {
    display: block;
    font-weight: 600;
}

.bld-now[b-4dtok9cema] {
    display: block;
    margin-top: 2px;
    overflow-wrap: anywhere;
}

[b-4dtok9cema] .bld-now-skel {
    margin-top: 6px;
    max-width: 200px;
}

.bld-values-foot[b-4dtok9cema] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
}

/* ------------------------------------------------------------------ save */

.bld-save[b-4dtok9cema] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
    gap: var(--space-5);
    align-items: start;
    max-width: 1100px;
}

.bld-save-main[b-4dtok9cema] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    min-width: 0;
}

.bld-card-panel[b-4dtok9cema] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-5);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius);
    background: var(--surface);
    min-width: 0;
}

.bld-save-side[b-4dtok9cema] {
    position: sticky;
    top: 8px;
}

.bld-checks[b-4dtok9cema] {
    margin: 0;
    padding: 0;
    list-style: none;
}

.bld-check[b-4dtok9cema] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-2) 0;
    font-size: var(--text-base);
}

.bld-check--ok[b-4dtok9cema]  .mud-icon-root {
    color: var(--success);
}

.bld-check--warn[b-4dtok9cema]  .mud-icon-root {
    color: var(--warn);
}

.bld-object[b-4dtok9cema] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bld-object-state[b-4dtok9cema] {
    min-height: 24px;
    font-size: var(--text-base);
}

.bld-attrs[b-4dtok9cema] {
    border-collapse: collapse;
    font-size: var(--text-sm);
}

.bld-attrs caption[b-4dtok9cema] {
    text-align: left;
    color: var(--text-dim);
    padding-bottom: var(--space-2);
}

.bld-attrs td[b-4dtok9cema] {
    padding: var(--space-2) var(--space-4) var(--space-2) 0;
    vertical-align: middle;
}

.bld-json summary[b-4dtok9cema] {
    min-height: 32px;
    color: var(--text-dim);
    font-size: var(--text-base);
    cursor: pointer;
}

.bld-json pre[b-4dtok9cema] {
    max-height: 320px;
    overflow: auto;
    padding: var(--space-3);
    background: var(--code-bg, var(--surface-2));
    border-radius: var(--radius);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
}

[b-4dtok9cema] .bld-choice {
    display: flex;
    flex-direction: column;
}

.bld-saved[b-4dtok9cema] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding-top: var(--space-3);
    border-top: 1px solid var(--border-soft);
}

/* ------------------------------------------------------------------ narrower */

@container page (max-width: 64rem) {
    .bld-layout[b-4dtok9cema] {
        grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    }

    .bld-layout-preview[b-4dtok9cema] {
        grid-column: 1 / -1;
    }

    .bld-start[b-4dtok9cema],
    .bld-save[b-4dtok9cema] {
        grid-template-columns: minmax(0, 1fr);
    }

    .bld-save-side[b-4dtok9cema] {
        position: static;
    }
}

/* On a phone the three panes become tabs, one shown at a time. */
@container page (max-width: 48rem) {
    .bld-page[b-4dtok9cema] {
        padding: var(--space-4);
    }

    .bld-bar[b-4dtok9cema] {
        gap: var(--space-2) var(--space-3);
    }

    .bld-back[b-4dtok9cema] {
        flex-basis: 100%;
        justify-content: flex-start;
    }

    .bld-steps[b-4dtok9cema] {
        flex-wrap: nowrap;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .bld-step[b-4dtok9cema] {
        flex: none;
    }

    .bld-panes[b-4dtok9cema] {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .bld-panes .bld-segment[b-4dtok9cema] {
        min-height: 40px;
    }

    .bld-layout[b-4dtok9cema] {
        grid-template-columns: minmax(0, 1fr);
    }

    .bld-layout-outline[b-4dtok9cema],
    .bld-layout-settings[b-4dtok9cema],
    .bld-layout-preview[b-4dtok9cema] {
        display: none;
        position: static;
        max-height: none;
    }

    .bld-layout--outline .bld-layout-outline[b-4dtok9cema],
    .bld-layout--settings .bld-layout-settings[b-4dtok9cema],
    .bld-layout--preview .bld-layout-preview[b-4dtok9cema] {
        display: block;
    }

    [b-4dtok9cema] .bld-row-tools {
        position: static;
        background: none;
        box-shadow: none;
        opacity: 1;
        transform: none;
    }

    [b-4dtok9cema] .bld-row-node,
    [b-4dtok9cema] .bld-row-name {
        min-height: 44px;
    }

    [b-4dtok9cema] .bld-icon-button {
        width: 40px;
        height: 40px;
    }

    .bld-bar-tools[b-4dtok9cema]  .mud-button-root {
        flex: 1;
    }

    .bld-bar-tools[b-4dtok9cema] {
        flex: 1 1 100%;
    }
}
/* /Pages/CharacterCreate.razor.rz.scp.css */
.charcreate-page[b-ikmf4cztsd] {
    padding: var(--cpad);
}

[b-ikmf4cztsd] .charcreate-card {
    max-width: 560px;
    margin: 0 auto;
    background: var(--surface);
    border: 1px solid var(--border-soft);
}

.charcreate-actions[b-ikmf4cztsd] {
    display: flex;
    gap: var(--space-3);
    margin-top: 1.25rem;
}

.charcreate-page[b-ikmf4cztsd]  .charcreate-switch {
    margin-top: 1rem;
}

.charcreate-page[b-ikmf4cztsd]  .charcreate-switch a {
    color: var(--accent);
    text-decoration: underline;
}

@container page (max-width: 48rem) {
    .charcreate-page[b-ikmf4cztsd] {
        padding: var(--cpad-mobile);
    }
    .charcreate-actions[b-ikmf4cztsd] {
        flex-direction: column;
    }
    .charcreate-actions[b-ikmf4cztsd]  .mud-button-root {
        width: 100%;
        min-height: 44px;
    }
}

.charcreate-guide[b-ikmf4cztsd] {
    margin: 0.75rem 0 0;
}

.charcreate-guide a[b-ikmf4cztsd] {
    color: var(--accent);
    text-decoration: underline;
}
/* /Pages/CharacterGallery.razor.rz.scp.css */
.char-gallery-page[b-gnfuy1m4r8] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

.char-gallery-back[b-gnfuy1m4r8] {
	color: var(--accent);
	text-decoration: none;
}

.char-gallery-back:hover[b-gnfuy1m4r8] {
	text-decoration: underline;
}

.char-gallery-grid[b-gnfuy1m4r8] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: var(--space-4);
}

.char-gallery-item[b-gnfuy1m4r8] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	margin: 0;
	min-width: 0;
}

.char-gallery-tile[b-gnfuy1m4r8] {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 1;
	padding: 0;
	border: 1px solid var(--border);
	border-radius: var(--radius-card);
	overflow: hidden;
	background: var(--surface-2);
	cursor: zoom-in;
}

.char-gallery-tile img[b-gnfuy1m4r8] {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.char-gallery-tile:focus-visible[b-gnfuy1m4r8] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.char-gallery-cover[b-gnfuy1m4r8] {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--space-3);
	width: 100%;
	height: 100%;
	padding: var(--space-4);
	box-sizing: border-box;
	font-size: var(--text-sm);
	color: var(--text-dim);
	text-align: center;
}

.char-gallery-badge[b-gnfuy1m4r8] {
	position: absolute;
	top: 6px;
	left: 6px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--glass-pill-bg);
	backdrop-filter: var(--glass-filter);
	-webkit-backdrop-filter: var(--glass-filter);
	box-shadow: var(--glass-edge);
	color: var(--warn);
}

.char-gallery-caption[b-gnfuy1m4r8] {
	font-size: var(--text-sm);
	color: var(--text-dim);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@container page (max-width: 48rem) {
	.char-gallery-grid[b-gnfuy1m4r8] {
		grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
		gap: var(--space-3);
	}
}
/* /Pages/CharacterProfile.razor.rz.scp.css */
.char-profile[b-33fsnihhig] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	min-width: 0;
}

/* the portrait, with Change avatar on its bottom-right corner for whoever may edit the profile */
.char-profile-avatar[b-33fsnihhig] {
	position: relative;
}

.char-profile-avatar[b-33fsnihhig]  .char-profile-change-avatar {
	position: absolute;
	right: -8px;
	bottom: -8px;
}

/* the 104px portrait at the banner's bottom-left, radius 18 */
.char-profile-portrait[b-33fsnihhig],
.char-profile-initials[b-33fsnihhig] {
	display: block;
	width: 104px;
	height: 104px;
	border-radius: 18px;
	border: 1px solid var(--border);
	box-sizing: border-box;
	object-fit: cover;
}

.char-profile-initials[b-33fsnihhig] {
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(140deg, hsl(var(--portrait-hue) 40% 34%), hsl(var(--portrait-hue) 34% 22%));
	color: hsl(var(--portrait-hue) 45% 86%);
	font-size: var(--text-2xl);
	font-weight: 700;
	line-height: 1;
	text-shadow: none;
}

.char-profile-role[b-33fsnihhig] {
	font-size: var(--text-sm);
	color: var(--text-on-image);
	margin-top: 2px;
}

.char-profile-pills[b-33fsnihhig] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	margin-top: 10px;
	text-shadow: none;
}

.char-profile-pill--scene[b-33fsnihhig] {
	text-decoration: none;
	color: inherit;
	border-radius: 13px;
}

.char-profile-pill--scene:focus-visible[b-33fsnihhig] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.char-profile-body[b-33fsnihhig] {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--aside-w);
	gap: var(--space-5);
	align-items: start;
}

.char-profile-main[b-33fsnihhig],
.char-profile-aside[b-33fsnihhig] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	min-width: 0;
}

.char-profile-unavailable[b-33fsnihhig] {
	padding: var(--space-4) var(--space-5);
	border: 1px solid var(--border);
	border-radius: var(--radius-card);
	background: var(--surface);
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.char-profile-missing[b-33fsnihhig] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.char-profile-missing a[b-33fsnihhig] {
	color: var(--accent);
	font-weight: 600;
}

/* README §3: main and aside stay side by side at the medium tier; only narrow stacks them */
@container page (max-width: 48rem) {
	.char-profile-body[b-33fsnihhig] {
		grid-template-columns: minmax(0, 1fr);
	}
}

@container page (max-width: 48rem) {
	.char-profile-portrait[b-33fsnihhig],
	.char-profile-initials[b-33fsnihhig] {
		width: 72px;
		height: 72px;
		border-radius: 14px;
		font-size: var(--text-xl);
	}
}
/* /Pages/Characters.razor.rz.scp.css */
.char-page[b-kxdsz3zqqk] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

.char-grid[b-kxdsz3zqqk] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
	gap: var(--space-4);
}

@container page (max-width: 48rem) {
	.char-grid[b-kxdsz3zqqk] {
		grid-template-columns: repeat(auto-fill, minmax(7rem, 1fr));
		gap: var(--space-4);
	}
}
/* /Pages/CharacterScenes.razor.rz.scp.css */
.char-scenes-page[b-olz2weuqoz] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

.char-scenes-list[b-olz2weuqoz] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.char-scenes-back[b-olz2weuqoz] {
	color: var(--accent);
	text-decoration: none;
}

.char-scenes-back:hover[b-olz2weuqoz] {
	text-decoration: underline;
}

.char-scenes-search[b-olz2weuqoz] {
	width: 240px;
	max-width: 100%;
	height: 36px;
	padding: 0 var(--space-5);
	border: 1px solid var(--border);
	border-radius: 18px;
	background: var(--surface);
	color: var(--text);
	font: inherit;
	font-size: var(--text-sm);
	outline: none;
	box-sizing: border-box;
}

.char-scenes-search:focus-visible[b-olz2weuqoz] {
	border-color: var(--accent);
}

.char-scenes-page[b-olz2weuqoz]  .char-scenes-more {
	align-self: center;
}

@container page (max-width: 48rem) {
	.char-scenes-search[b-olz2weuqoz] {
		width: 100%;
	}
}

.char-scenes-dated[b-olz2weuqoz] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.char-scenes-date[b-olz2weuqoz] {
	color: var(--text);
	font-size: var(--text-sm);
	font-weight: 600;
}

.char-scenes-undated[b-olz2weuqoz] {
	color: var(--text-dim);
	font-weight: 400;
}
/* /Pages/DiscordLink.razor.rz.scp.css */
/* Laid out as the account page is: a column of cards under the header. */
.discord-link-page[b-9nv9xq2xgl] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    min-width: 0;
    max-width: 56rem;
}

.discord-link-card[b-9nv9xq2xgl] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    padding: var(--space-5) var(--space-5) var(--space-5);
}

.discord-link-card p[b-9nv9xq2xgl] {
    margin: 0;
}

.discord-link-back[b-9nv9xq2xgl] {
    color: var(--accent);
}

.discord-link-user[b-9nv9xq2xgl] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
}

.discord-link-avatar[b-9nv9xq2xgl] {
    width: 48px;
    height: 48px;
    border-radius: 50%;
}

.discord-link-name[b-9nv9xq2xgl] {
    font-weight: 600;
}

.discord-link-meta[b-9nv9xq2xgl] {
    color: var(--text-dim);
    font-size: var(--text-base);
}

.discord-link-confirm[b-9nv9xq2xgl] {
    align-self: flex-start;
    padding: var(--space-3) var(--space-5);
    border: none;
    border-radius: var(--radius);
    background: var(--accent);
    color: var(--accent-on);
    font-weight: 600;
    cursor: pointer;
}

.discord-link-confirm:disabled[b-9nv9xq2xgl] {
    opacity: 0.6;
    cursor: default;
}

/* a narrow page gives the confirm button the card's whole width, an easier tap */
@container page (max-width: 48rem) {
    .discord-link-confirm[b-9nv9xq2xgl] {
        align-self: stretch;
    }
}
/* /Pages/DynamicApplication.razor.rz.scp.css */
.app-page[b-vf01634sg3] {
    padding: var(--cpad);
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

.app-card[b-vf01634sg3] {
    background: var(--surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    padding: var(--space-6) var(--space-6);
}

.app-loading[b-vf01634sg3] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.app-loading-text[b-vf01634sg3] {
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    letter-spacing: 0.06em;
    color: var(--text-dim);
}

.app-alert[b-vf01634sg3] {
    background: var(--surface);
    border: 1px solid var(--border-soft);
    border-left: 3px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: var(--space-5) var(--space-6);
    color: var(--text);
    font-family: var(--font-ui);
    font-size: var(--text-base);
    line-height: 1.5;
}

.app-alert code[b-vf01634sg3] {
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    background: var(--surface-2);
    border: 1px solid var(--border-soft);
    border-radius: 4px;
    padding: var(--space-1) var(--space-2);
    color: var(--text);
}

/* The action offered alongside an explanatory alert (create a character / sign in). */
.app-alert-link[b-vf01634sg3] {
    margin-left: 0.375rem;
    color: var(--accent);
    text-decoration: none;
}

.app-alert-link:hover[b-vf01634sg3] {
    text-decoration: underline;
}

.app-alert-warning[b-vf01634sg3] {
    border-left-color: var(--accent);
}

.app-alert-error[b-vf01634sg3] {
    border-left-color: var(--danger);
}

@container page (max-width: 48rem) {
    .app-page[b-vf01634sg3] {
        padding: var(--cpad-mobile);
    }

    .app-card[b-vf01634sg3] {
        padding: var(--cpad-mobile);
    }

    .app-alert[b-vf01634sg3] {
        padding: var(--space-5) var(--cpad-mobile);
    }
}
/* /Pages/ExternalLoginComplete.razor.rz.scp.css */
.external-complete[b-lb02nznd4n] { width: min(100% - 2rem, 32rem); margin: 3rem auto; display: grid; gap: var(--space-5); overflow-wrap: anywhere; }
.external-complete h1[b-lb02nznd4n] { margin: 0; font-size: var(--text-2xl); }
.external-complete p[b-lb02nznd4n] { line-height: 1.6; max-width: 65ch; }

/* OnboardingLayout provides the unnamed size container. */
@container (max-width: 30rem) { .external-complete[b-lb02nznd4n] { margin: 1.5rem auto; gap: var(--space-4); } }
/* /Pages/Help.razor.rz.scp.css */
.help-page[b-13wdoiwj41] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

.help-start[b-13wdoiwj41] {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: var(--space-4);
}

.help-start-item[b-13wdoiwj41] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	padding: var(--space-4) var(--space-5);
	border: 1px solid var(--border);
	border-radius: var(--radius-card);
	background: var(--surface);
	color: var(--text);
	text-decoration: none;
}

.help-start-item:hover[b-13wdoiwj41] {
	border-color: var(--accent);
}

.help-start-item:focus-visible[b-13wdoiwj41] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.help-start-name[b-13wdoiwj41] {
	font-weight: 600;
	color: var(--accent);
}

.help-start-sub[b-13wdoiwj41] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.help-entry[b-13wdoiwj41] {
	padding: var(--space-5) var(--space-6);
	overflow-wrap: anywhere;
}

.help-filter[b-13wdoiwj41] {
	width: 220px;
	max-width: 100%;
	height: 36px;
	padding: 0 var(--space-5);
	border: 1px solid var(--border);
	border-radius: 18px;
	background: var(--surface-2);
	color: var(--text);
	font: inherit;
	font-size: var(--text-sm);
	outline: none;
	box-sizing: border-box;
}

.help-filter:focus-visible[b-13wdoiwj41] {
	border-color: var(--accent);
}

.help-topics[b-13wdoiwj41] {
	padding: var(--space-4) var(--space-5) var(--space-5);
}

.help-topic-list[b-13wdoiwj41] {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
	gap: var(--space-1) var(--space-5);
	max-height: 32rem;
	overflow-y: auto;
}

.help-topic-list li[b-13wdoiwj41] {
	content-visibility: auto;
	contain-intrinsic-size: auto 1.375rem;
}

.help-topic-list a[b-13wdoiwj41] {
	display: block;
	padding: var(--space-2) 0;
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--accent);
	text-decoration: none;
	overflow-wrap: anywhere;
}

.help-topic-list a:hover[b-13wdoiwj41],
.help-topic-list a:focus-visible[b-13wdoiwj41] {
	text-decoration: underline;
}

/* The index entry is server-rendered markdown, so its tags are not in this component's markup and
   scoped CSS would not reach them without ::deep. */
.help-entry[b-13wdoiwj41]  h1 {
	margin: 0 0 0.75rem;
	font-size: var(--text-lg);
	font-weight: 700;
	color: var(--text);
}

.help-entry[b-13wdoiwj41]  a {
	color: var(--accent);
}

.help-entry[b-13wdoiwj41]  pre {
	overflow-x: auto;
}

/* A blank line in a helpfile is a blank line in the terminal. The portal's reset takes every margin
   off, so without these each block would run straight into the next. */
.help-entry[b-13wdoiwj41]  :is(p, ul, ol, pre, table, blockquote) {
	margin: 0 0 1em;
	margin-block-end: 1lh;
}

/* The portal's reset takes a list's indent off, which leaves its markers left of the text. */
.help-entry[b-13wdoiwj41]  :is(ul, ol) {
	padding-inline-start: 1.5em;
}

.help-entry[b-13wdoiwj41]  :is(h2, h3) {
	margin: 0 0 0.5em;
}

.help-entry[b-13wdoiwj41]  :is(p, ul, ol, pre, table, blockquote):last-child {
	margin-block-end: 0;
}

/* Helpfiles are written for a terminal, which prints every space: authors line text up with runs of
   them. The server turns each line break into what the terminal prints (HelpHtmlRenderer), so keeping
   the spaces here adds no line the terminal would not show. A paragraph laid out in columns is marked
   help-aligned, and its columns only line up in a monospaced font. */
.help-entry[b-13wdoiwj41]  p,
.help-entry[b-13wdoiwj41]  td,
.help-entry[b-13wdoiwj41]  th {
	white-space: pre-wrap;
}

.help-entry[b-13wdoiwj41]  p.help-aligned {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
}

.help-entry[b-13wdoiwj41]  table {
	display: block;
	overflow-x: auto;
	max-width: 100%;
}

/* A header-less table is a list of names in columns (the topic index); the terminal prints it bare. */
.help-entry[b-13wdoiwj41]  table.help-list td {
	padding: var(--space-1) var(--space-6) var(--space-1) 0;
	border: none;
	font-family: var(--font-mono);
	font-size: var(--text-sm);
}

/* The index's lists of "what you want: the topic" (HelpHtmlRenderer.RenderIndexToHtml) as cards, the way the
   start row above draws its three: the description, then the topic or command it names. */
.help-entry[b-13wdoiwj41]  ul.help-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: var(--space-3);
	padding: 0;
	list-style: none;
}

.help-entry[b-13wdoiwj41]  .help-card {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	height: 100%;
	box-sizing: border-box;
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--border);
	border-radius: var(--radius-tile);
	background: var(--surface-2);
	color: var(--text);
	text-decoration: none;
	white-space: normal;
}

.help-entry[b-13wdoiwj41]  a.help-card:hover {
	border-color: var(--accent);
}

.help-entry[b-13wdoiwj41]  a.help-card:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.help-entry[b-13wdoiwj41]  .help-card-name {
	font-weight: 600;
}

.help-entry[b-13wdoiwj41]  .help-card-target {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.help-entry[b-13wdoiwj41]  a.help-card .help-card-target {
	color: var(--accent);
}

/* narrow: the card header's filter takes the full width it has, and the entry keeps less padding */
@container page (max-width: 48rem) {
	.help-filter[b-13wdoiwj41] {
		width: 100%;
	}

	.help-entry[b-13wdoiwj41] {
		padding: var(--space-4) var(--space-5);
	}
}
/* /Pages/HelpAdminTopic.razor.rz.scp.css */
.help-page[b-a77b2e0rsd] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	max-width: 960px;
}

.help-body[b-a77b2e0rsd] {
	padding: var(--space-5) var(--space-6);
}

/* narrow: the entry keeps less of its padding */
@container page (max-width: 48rem) {
	.help-page[b-a77b2e0rsd] {
		max-width: none;
	}

	.help-body[b-a77b2e0rsd] {
		padding: var(--space-4) var(--space-5);
	}
}
/* /Pages/HelpTopic.razor.rz.scp.css */
.help-page[b-mbns7r6x51] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	max-width: 960px;
}

.help-body[b-mbns7r6x51] {
	padding: var(--space-5) var(--space-6);
}

/* narrow: the entry keeps less of its padding */
@container page (max-width: 48rem) {
	.help-page[b-mbns7r6x51] {
		max-width: none;
	}

	.help-body[b-mbns7r6x51] {
		padding: var(--space-4) var(--space-5);
	}
}
/* /Pages/Home.razor.rz.scp.css */
.home-page[b-asgg7q6kj7] {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--space-5);
	align-items: start;
	padding: var(--main-pad);
}

/* the aside column exists only when the layout places something in it */
.home-page--aside[b-asgg7q6kj7] {
	grid-template-columns: minmax(0, 1fr) var(--aside-w);
}

.home-aside[b-asgg7q6kj7] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	min-width: 0;
}

/* README §3: main and aside stay side by side at the medium tier; only narrow stacks them */
@container page (max-width: 48rem) {
	.home-page--aside[b-asgg7q6kj7] {
		grid-template-columns: minmax(0, 1fr);
	}
}

.home-section-title[b-asgg7q6kj7] {
	margin: var(--space-2) 0 0;
	font-family: var(--font-display);
	font-weight: var(--font-title-weight);
	font-size: var(--text-md);
}
/* /Pages/Login.razor.rz.scp.css */
.login-page[b-1karqwap29] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    min-height: 100svh;
    padding: var(--cpad);
}

[b-1karqwap29] .login-card {
    width: 100%;
    max-width: 380px;
    padding: var(--space-6);
    border-radius: var(--radius-lg);
    background: var(--surface);
    border: 1px solid var(--border);
}

/* Unnamed: under OnboardingLayout there is no .phosphor-page, so these query .onboarding-shell. */
@container (max-width: 48rem) {
    .login-page[b-1karqwap29] {
        padding: var(--space-5);
        min-height: 100vh;
        min-height: 100svh;
    }
    [b-1karqwap29] .login-card {
        padding: var(--space-6) var(--space-5);
    }
}

.login-guide-entry a[b-1karqwap29] {
    color: var(--accent);
    text-decoration: underline;
    text-underline-offset: .2em;
}

/* MudBlazor's tabs set their labels in capitals; the portal writes labels in sentence case. */
[b-1karqwap29] .mud-tab {
    text-transform: none;
}
/* /Pages/Mail.razor.rz.scp.css */
.mail-page[b-y8skp9vfep] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	min-width: 0;
}

.mail-page.full-height[b-y8skp9vfep] {
	height: 100%;
	min-height: 0;
	box-sizing: border-box;
}

.mail-note[b-y8skp9vfep] {
	overflow-wrap: anywhere;
	padding: var(--space-5) var(--space-5);
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.mail-note p[b-y8skp9vfep] {
	margin: 0 0 12px;
}

.mail-list-error[b-y8skp9vfep] {
	color: var(--link-missing);
}

/* the folder's list beside the message; both cards fill the page's remaining height */
.mail-panes[b-y8skp9vfep] {
	flex: 1 1 auto;
	min-height: 0;
	display: grid;
	grid-template-columns: minmax(16rem, 20rem) minmax(0, 1fr);
	gap: var(--space-4);
}

.mail-panes--single[b-y8skp9vfep] {
	grid-template-columns: minmax(0, 1fr);
}

.mail-list-body[b-y8skp9vfep]  .mail-list-empty {
	margin: 16px;
}

.mail-panes[b-y8skp9vfep]  .mail-list,
.mail-panes[b-y8skp9vfep]  .mail-reading {
	min-height: 0;
	overflow: hidden;
}

.mail-panes[b-y8skp9vfep]  .mail-list .kit-card-body,
.mail-panes[b-y8skp9vfep]  .mail-reading .kit-card-body {
	flex: 1 1 auto;
	min-height: 0;
	display: flex;
	flex-direction: column;
}

.mail-list-body[b-y8skp9vfep] {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: var(--space-3);
}

/* MudBlazor's button reset centres a button's content (inline-flex, align-items and justify-content
   center); a row lays out its own grid instead: the sender's avatar at the inline start, then the
   sender and date over the subject, aligned to the start in either writing direction. */
.mail-row[b-y8skp9vfep] {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	grid-template-rows: auto auto;
	column-gap: var(--space-4);
	row-gap: var(--space-1);
	align-items: center;
	justify-content: stretch;
	justify-items: stretch;
	width: 100%;
	min-width: 0;
	padding: var(--space-3) var(--space-4);
	border: 0;
	border-radius: var(--radius-row);
	background: transparent;
	color: var(--text-dim);
	font: inherit;
	text-align: start;
	cursor: pointer;
	transition: background var(--motion-fade);
}

[b-y8skp9vfep] .mail-row-avatar {
	grid-row: 1 / span 2;
	width: 32px;
	height: 32px;
	font-size: var(--text-xs);
}

.mail-row:hover[b-y8skp9vfep] {
	background: var(--surface-2);
}

.mail-row:focus-visible[b-y8skp9vfep] {
	outline: 2px solid var(--accent);
	outline-offset: -2px;
}

.mail-row--selected[b-y8skp9vfep] {
	background: var(--surface-2);
}

.mail-row--unread[b-y8skp9vfep] {
	color: var(--text);
}

.mail-row-top[b-y8skp9vfep] {
	grid-column: 2;
	display: flex;
	align-items: center;
	gap: var(--space-3);
	min-width: 0;
}

.mail-row-from[b-y8skp9vfep] {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: var(--text-sm);
}

.mail-row--unread .mail-row-from[b-y8skp9vfep] {
	font-weight: 700;
}

.mail-row--selected .mail-row-from[b-y8skp9vfep] {
	color: var(--accent);
	font-weight: 600;
}

.mail-row-date[b-y8skp9vfep] {
	flex-shrink: 0;
	font-size: var(--text-xs);
	color: var(--text-faint);
}

.mail-row-subject[b-y8skp9vfep] {
	grid-column: 2;
	font-size: var(--text-sm);
	color: var(--text-dim);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.mail-reading-none[b-y8skp9vfep] {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 12rem;
	font-size: var(--text-base);
	color: var(--text-faint);
}

.mail-reading-head[b-y8skp9vfep] {
	display: flex;
	align-items: flex-start;
	gap: var(--space-4);
	padding: var(--space-5);
	border-bottom: 1px solid var(--border-soft);
	flex-shrink: 0;
}

[b-y8skp9vfep] .mail-avatar {
	flex-shrink: 0;
	display: grid;
	place-items: center;
	border-radius: 50%;
	font-weight: 700;
}

[b-y8skp9vfep] .mail-reading-avatar {
	width: 40px;
	height: 40px;
	font-size: var(--text-sm);
}

.mail-reading-meta[b-y8skp9vfep] {
	overflow-wrap: anywhere;
	flex: 1 1 auto;
	min-width: 0;
}

.mail-reading-subject[b-y8skp9vfep] {
	font-size: var(--text-base);
	font-weight: 700;
	color: var(--text);
}

.mail-reading-from[b-y8skp9vfep] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.mail-reading-date[b-y8skp9vfep] {
	font-size: var(--text-sm);
	color: var(--text-faint);
}

.mail-reading-body[b-y8skp9vfep] {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: var(--space-5);
}

.mail-reading-text[b-y8skp9vfep] {
	overflow-wrap: anywhere;
	white-space: pre-wrap;
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	line-height: 1.6;
	color: var(--text);
}

.mail-reading-missing[b-y8skp9vfep] {
	font-size: var(--text-sm);
	color: var(--text-faint);
}

.mail-reading-actions[b-y8skp9vfep] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	padding: var(--space-4) var(--space-5);
	border-top: 1px solid var(--border-soft);
	flex-shrink: 0;
}

/* Narrow: the list and the message stack and the page scrolls as one column. */
@container page (max-width: 48rem) {
	.mail-page.full-height[b-y8skp9vfep] {
		height: auto;
	}

	.mail-panes[b-y8skp9vfep] {
		grid-template-columns: minmax(0, 1fr);
	}

	.mail-list-body[b-y8skp9vfep] {
		max-height: 45svh;
	}

	/* Stacked under the list, an empty reading card is a second box saying "pick one" below the list
	   you pick from; it appears once a message is open. */
	.mail-panes[b-y8skp9vfep]  .mail-reading--empty {
		display: none;
	}
}
/* /Pages/MailCompose.razor.rz.scp.css */
.mail-compose-page[b-0cwvvr8gpx] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	min-width: 0;
	max-width: 48rem;
}

.mc-fields[b-0cwvvr8gpx] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--space-5);
}

.mc-fields[b-0cwvvr8gpx]  .mc-field .mud-input-outlined-border {
	border-color: var(--border);
}

.mc-fields[b-0cwvvr8gpx]  .mc-field.mud-input-control:focus-within .mud-input-outlined-border {
	border-color: var(--accent);
}

/* grows with the text, from a message-sized box rather than one line */
.mc-fields[b-0cwvvr8gpx]  .mc-field textarea {
	field-sizing: content;
	min-height: 12rem;
}

.mc-bar[b-0cwvvr8gpx] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3);
}

.mc-spacer[b-0cwvvr8gpx] {
	flex: 1 1 auto;
}

/* Narrow: Cancel and Send take the whole row under the Urgent box. */
@container page (max-width: 48rem) {
	.mc-spacer[b-0cwvvr8gpx] {
		flex-basis: 100%;
		height: 0;
	}
}

.mc-draft-status[b-0cwvvr8gpx] {
	margin: 0;
	font-size: var(--text-sm);
	color: var(--text-dim);
	overflow-wrap: anywhere;
}
/* /Pages/MailDetail.razor.rz.scp.css */
.mail-detail-page[b-75u0oz5i6j] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	min-width: 0;
	max-width: 56rem;
}

.md-missing[b-75u0oz5i6j] {
	padding: var(--space-5);
	font-size: var(--text-base);
	color: var(--text-dim);
}

.md-head[b-75u0oz5i6j] {
	overflow-wrap: anywhere;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3) var(--space-4);
	padding: var(--space-5) var(--space-5);
	border-bottom: 1px solid var(--border-soft);
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.md-from strong[b-75u0oz5i6j] {
	color: var(--text);
	font-weight: 600;
}

.md-date[b-75u0oz5i6j] {
	margin-left: auto;
	font-size: var(--text-sm);
	color: var(--text-faint);
}

.md-body[b-75u0oz5i6j] {
	overflow-wrap: anywhere;
	padding: var(--space-5);
	white-space: pre-wrap;
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	line-height: 1.6;
	color: var(--text);
}

/* Narrow: long monospace tokens wrap rather than forcing a horizontal scroll. */
@container page (max-width: 48rem) {
	.md-body[b-75u0oz5i6j] {
		overflow-wrap: anywhere;
		word-break: break-word;
	}

	.md-date[b-75u0oz5i6j] {
		margin-left: 0;
	}
}
/* /Pages/OAuthAuthorize.razor.rz.scp.css */
.oauth-page[b-0fq9vdede4] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    min-width: 0;
    max-width: 40rem;
    margin: 0 auto;
}

.oauth-card[b-0fq9vdede4] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    padding: var(--space-5) var(--space-5) var(--space-6);
}

.oauth-card p[b-0fq9vdede4] {
    margin: 0;
}

.oauth-title[b-0fq9vdede4] {
    margin: 0;
    font-size: var(--text-lg);
    font-weight: 600;
}

.oauth-description[b-0fq9vdede4],
.oauth-note[b-0fq9vdede4] {
    color: var(--text-dim);
}

.oauth-homepage[b-0fq9vdede4] {
    color: var(--accent);
    overflow-wrap: anywhere;
}

.oauth-scopes[b-0fq9vdede4] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin: 0;
    padding: 0;
    list-style: none;
}

.oauth-scope[b-0fq9vdede4] {
    display: flex;
    flex-direction: column;
    padding: var(--space-4) var(--space-4);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.oauth-scope-name[b-0fq9vdede4] {
    font-weight: 600;
}

.oauth-scope-detail[b-0fq9vdede4] {
    color: var(--text-dim);
    font-size: var(--text-base);
}

.oauth-actions[b-0fq9vdede4] {
    display: flex;
    gap: var(--space-3);
}

.oauth-allow[b-0fq9vdede4],
.oauth-deny[b-0fq9vdede4] {
    padding: var(--space-3) var(--space-5);
    border-radius: var(--radius);
    font-weight: 600;
    cursor: pointer;
}

.oauth-allow[b-0fq9vdede4] {
    border: none;
    background: var(--accent);
    color: var(--accent-on);
}

.oauth-deny[b-0fq9vdede4] {
    border: 1px solid var(--border);
    background: transparent;
    color: var(--text);
}

.oauth-allow:disabled[b-0fq9vdede4],
.oauth-deny:disabled[b-0fq9vdede4] {
    opacity: 0.6;
    cursor: default;
}

@container page (max-width: 48rem) {
    .oauth-actions[b-0fq9vdede4] {
        flex-direction: column;
    }
}
/* /Pages/Play.razor.rz.scp.css */
/* D1 §5: main (banner over the scene card) beside the aside (Here, then Exits). */
.play[b-ejrpjaeskh] {
    display: grid;
    /* minmax(0, 1fr): a bare 1fr track refuses to shrink below its content's min-content width, so the
       wide terminal canvas would push the whole page wider than the viewport. The aside is as wide as the page
       sidebar on the other side of the terminal, so the two frame it evenly. */
    grid-template-columns: minmax(0, 1fr) var(--side-w);
    grid-template-rows: minmax(0, 1fr);
    gap: var(--space-4);
    padding: var(--space-5);
    height: 100%;
    overflow: hidden;
    /* The aside's column narrowing to its strip and widening again. */
    transition: grid-template-columns var(--motion-move);
}

/* Focus hides the shell's touch header too (shell.css), so on a touch device in any orientation the
   card is what meets the notch and the home indicator: the safe-area insets, 8px at least. */
.play--focus[b-ejrpjaeskh] {
    grid-template-columns: minmax(0, 1fr);
    padding: max(var(--space-3), env(safe-area-inset-top)) max(var(--space-3), env(safe-area-inset-right)) max(var(--space-3), env(safe-area-inset-bottom)) max(var(--space-3), env(safe-area-inset-left));
}

.play-main[b-ejrpjaeskh] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    min-width: 0;
    min-height: 0;
}

.play-card[b-ejrpjaeskh],
.play-comm[b-ejrpjaeskh] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

/* A scoped display rule outranks the user agent's [hidden]; say it again. */
.play-card[hidden][b-ejrpjaeskh],
.play-aside[hidden][b-ejrpjaeskh],
.play-aside-panels[hidden][b-ejrpjaeskh] {
    display: none;
}

/* Story and Terminal share one cell; the one not shown keeps its size (the terminal measures its
   columns) but is invisible and inert. */
.play-views[b-ejrpjaeskh] {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template: minmax(0, 1fr) / minmax(0, 1fr);
}

.play-view[b-ejrpjaeskh] {
    grid-area: 1 / 1;
    min-height: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.play-view--off[b-ejrpjaeskh] {
    visibility: hidden;
    pointer-events: none;
}

.play-story-unavailable[b-ejrpjaeskh] {
    flex-shrink: 0;
    margin: 8px 16px 0;
    padding: var(--space-3) var(--space-4);
    border-radius: 8px;
    background: var(--warn-tint);
    color: var(--warn);
    font-size: var(--text-sm);
}

/* column-reverse keeps the story anchored at its newest pose as poses arrive. */
.play-story-scroll[b-ejrpjaeskh] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column-reverse;
    padding: var(--space-3) var(--space-5);
}

.play-terminal[b-ejrpjaeskh] {
    padding: 0 var(--space-2);
}

.play-aside[b-ejrpjaeskh] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    position: relative;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
}

.play-aside-panels[b-ejrpjaeskh] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

/* The aside's collapse button, in the top right corner of its first card's header (Here, by default), so it
   pushes nothing down; that header keeps clear of it. Collapsed, it is all the strip holds. Same look as the
   page sidebar's (SectionShell), at 32px to fit an aside card's header. */
.play-aside-toggle[b-ejrpjaeskh] {
    position: absolute;
    top: 6px;
    right: 6px;
    z-index: 1;
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--text-dim);
    cursor: pointer;
    transition: color var(--motion-fade), background var(--motion-fade);
}

.play-aside-toggle:hover[b-ejrpjaeskh],
.play-aside-toggle:focus-visible[b-ejrpjaeskh] {
    color: var(--text);
    background: var(--border);
    outline: none;
}

.play-aside-toggle:focus-visible[b-ejrpjaeskh] {
    box-shadow: 0 0 0 2px var(--accent);
}

.play-aside-panels[b-ejrpjaeskh]  .kit-card:first-child > .kit-card-head {
    padding-right: var(--space-7);
}

.play--aside-collapsed .play-aside-toggle[b-ejrpjaeskh] {
    position: static;
    align-self: center;
    flex-shrink: 0;
}

/* The header's less frequent buttons (terminal settings, Disconnect): in the header's flex row as they are, and
   stepping back into the banner's controls row on a phone (below). */
.play-head-more[b-ejrpjaeskh] {
    display: contents;
}

/* The banner's controls row: in the phone's details sheet (next), and in the banner on a narrow page (below). */
.play-banner-more[b-ejrpjaeskh] {
    display: none;
    gap: var(--space-3);
}

.play-sheet--details .play-banner-more[b-ejrpjaeskh] {
    display: flex;
}

/* The site's own menu, at the top of Play's sidebar. */
.play-sheet-site[b-ejrpjaeskh] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    width: 100%;
    min-height: 44px;
    margin-bottom: 8px;
    padding: 0 var(--space-4);
    border: 0;
    border-radius: 12px;
    background: var(--surface-3);
    color: var(--text);
    font: inherit;
    font-size: var(--text-base);
    font-weight: 600;
    cursor: pointer;
}

.play-sheet-site:focus-visible[b-ejrpjaeskh] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

/* Medium: a narrower aside. */
@container page (max-width: 64rem) {
    .play[b-ejrpjaeskh] {
        padding: var(--space-4);
        grid-template-columns: minmax(0, 1fr) 168px;
    }
    .play--focus[b-ejrpjaeskh] {
        grid-template-columns: minmax(0, 1fr);
        padding: max(var(--space-3), env(safe-area-inset-top)) max(var(--space-3), env(safe-area-inset-right)) max(var(--space-3), env(safe-area-inset-bottom)) max(var(--space-3), env(safe-area-inset-left));
    }
}

/* Narrow (board 11): no aside. Here and Exits are the Room panel, from the header's people button. */
@container page (max-width: 48rem) {
    .play[b-ejrpjaeskh] {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: minmax(0, 1fr);
        padding: var(--space-3);
        gap: var(--space-3);
    }
    .play-aside[b-ejrpjaeskh] {
        display: none;
    }
    /* Discord's channel header: the buttons used all the time stay (menu, name, view, people); focus mode, the
       terminal settings and Disconnect move into the banner the name opens. Only once a room has come (the banner
       needs one), and not in focus mode, which has no banner and keeps its own exit. */
    .play--room:not(.play--focus) .play-head-more[b-ejrpjaeskh],
    .play--room:not(.play--focus)[b-ejrpjaeskh]  .scene-card-focus {
        display: none;
    }
    .play-banner-more[b-ejrpjaeskh] {
        display: flex;
    }
    /* A chat app's top bar keeps few buttons: with the terminal settings in the header, focus is in that
       menu (Play.razor), not a button of its own. */
    .play[b-ejrpjaeskh]  .scene-card-head:has(.play-settings-btn) .scene-card-focus {
        display: none;
    }
    /* Focus on a phone: the shell's header is gone too (shell.css), so the card meets the screen's
       edges, clear of the notch and the home indicator (viewport-fit=cover). */
    .play--focus[b-ejrpjaeskh] {
        padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
        gap: 0;
    }
    .play--focus[b-ejrpjaeskh]  .scene-card {
        border-width: 0;
        border-radius: 0;
        --scene-card-inner-radius: 0;
    }
    .play-story-scroll[b-ejrpjaeskh] {
        padding: var(--space-3) var(--space-4);
    }
}

/* Collapsed (the player's choice, remembered): the aside narrows to a strip as wide as its toggle and the
   terminal takes the rest. After the tiers, which set the aside's width; the narrow tier has no aside and focus
   mode hides it, so neither is touched. */
.play--aside-collapsed:not(.play--focus)[b-ejrpjaeskh] {
    grid-template-columns: minmax(0, 1fr) 32px;
}

@container page (max-width: 48rem) {
    .play--aside-collapsed:not(.play--focus)[b-ejrpjaeskh] {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Short (#1506): a phone held sideways (layout.js shortScreenQuery; Play sets play--short). It is wider than the
   narrow tier, so it keeps the tablet layout and the aside, but it has about 390px of height, so everything that
   stacks gives some back. The page's edges follow the safe-area insets, because the notch is now at a side, not
   the top. A class rather than a query: a page stylesheet asks its container, and the container is not a size
   container (ResponsiveConventionsTests). Stated after the tiers, so it wins where they also apply. */
.play--short[b-ejrpjaeskh] {
    padding: max(var(--space-3), env(safe-area-inset-top)) max(var(--space-3), env(safe-area-inset-right)) max(var(--space-3), env(safe-area-inset-bottom)) max(var(--space-3), env(safe-area-inset-left));
    gap: var(--space-3);
}

.play--short .play-main[b-ejrpjaeskh],
.play--short .play-aside[b-ejrpjaeskh] {
    gap: var(--space-3);
}

/* Focus mode goes edge to edge, clear of the notch and the home indicator, as it does on an upright phone. */
.play--short.play--focus[b-ejrpjaeskh] {
    padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
    gap: 0;
}

.play--short.play--focus[b-ejrpjaeskh]  .scene-card {
    border-width: 0;
    border-radius: 0;
    --scene-card-inner-radius: 0;
}

/* The header on one line: the room (or scene) beside the name instead of under it, and nothing wraps. */
.play--short[b-ejrpjaeskh]  .scene-card-head {
    flex-wrap: nowrap;
    gap: var(--space-3);
    padding-top: var(--space-3);
    padding-bottom: var(--space-3);
}

.play--short[b-ejrpjaeskh]  .scene-card-titles {
    display: flex;
    align-items: baseline;
    gap: var(--space-3);
}

.play--short[b-ejrpjaeskh]  .scene-card-title,
.play--short[b-ejrpjaeskh]  .scene-card-sub {
    flex: 0 1 auto;
    min-width: 0;
}

.play--short[b-ejrpjaeskh]  .sharp-terminal-input {
    padding-top: var(--space-3);
    padding-bottom: var(--space-3);
}

.play--short .play-story-scroll[b-ejrpjaeskh] {
    padding: var(--space-3) var(--space-4);
}

.play--short[b-ejrpjaeskh]  .scene-card-foot {
    padding: 0 var(--space-3) var(--space-3);
}

/* The composer on one line once it is wide enough for the field to keep its room (focus mode, mostly): the
   chips, the field, the tools and Send. Not while expanded: the field is the screen then. The composer is its
   own size container (PlayComposer.razor.css), so this asks its width. */
@container (min-width: 40rem) {
    .play--short[b-ejrpjaeskh]  .composer:not(.composer--expanded) .composer-grid {
        grid-template-columns: auto minmax(0, 1fr) auto auto;
        grid-template-areas: "chips input tools send";
    }
}

/* Explicitly opened guide: a visible return action, outside the game layout. */
.play-guide-navigation[b-ejrpjaeskh] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-bottom: 20px;
}
.play-guide-return[b-ejrpjaeskh] {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    text-decoration: none;
    padding: var(--space-3);
    border: 1px solid var(--accent);
    border-radius: 8px;
    background: var(--surface-3);
    color: var(--text);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}
.play-guide-return:focus-visible[b-ejrpjaeskh] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}
/* /Pages/Register.razor.rz.scp.css */
/* Intentionally empty: this route renders a <PageTitle> and redirects to /login?tab=register.
   EveryRoutablePageHasAStylesheet requires the file to exist. */
/* /Pages/SceneDetail.razor.rz.scp.css */
.scene-detail-page[b-08fjstb1a7] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

.scene-detail-meta[b-08fjstb1a7] {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2) var(--space-3);
}

.scene-detail-back[b-08fjstb1a7] {
	display: flex;
}

/* D1 §3: main + aside inside the page, the aside a stack of cards */
.scene-detail-grid[b-08fjstb1a7] {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--aside-w);
	gap: var(--space-5);
	align-items: start;
}

.scene-detail-main[b-08fjstb1a7] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	min-width: 0;
}

/* The tag chips lead; the pose types' Show menu keeps the end of the row. */
.scene-detail-filters[b-08fjstb1a7] {
	display: flex;
	align-items: flex-start;
	gap: var(--space-4);
	flex-wrap: wrap;
}

.scene-detail-filters:empty[b-08fjstb1a7] {
	display: none;
}

.scene-detail-filters[b-08fjstb1a7]  .scene-detail-types {
	margin-left: auto;
}

/* beside a long log the details and cast stay in view */
.scene-detail-aside[b-08fjstb1a7] {
	position: sticky;
	top: 0;
	min-width: 0;
}

.scene-detail-about[b-08fjstb1a7] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

/* the fold is for a narrow page only */
.scene-detail-about-toggle[b-08fjstb1a7] {
	display: none;
}

.scene-detail-log[b-08fjstb1a7] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	padding: var(--space-4) var(--space-5);
}

.scene-detail-facts[b-08fjstb1a7] {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: var(--space-3) var(--space-4);
	margin: 0;
	font-size: var(--text-sm);
}

.scene-detail-facts dt[b-08fjstb1a7] {
	color: var(--text-faint);
}

.scene-detail-facts dd[b-08fjstb1a7] {
	margin: 0;
	color: var(--text);
	overflow-wrap: anywhere;
}

.scene-detail-cast[b-08fjstb1a7] {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	font-size: var(--text-sm);
}

/* narrow: the aside comes before the log, folded into one line that names the cast; the log keeps less of
   its padding */
@container page (max-width: 48rem) {
	.scene-detail-grid[b-08fjstb1a7] {
		grid-template-columns: minmax(0, 1fr);
	}

	.scene-detail-aside[b-08fjstb1a7] {
		position: static;
		order: -1;
	}

	.scene-detail-about-toggle[b-08fjstb1a7] {
		display: flex;
		align-items: center;
		gap: var(--space-4);
		width: 100%;
		padding: var(--space-4) var(--space-5);
		border: 1px solid var(--border);
		border-radius: var(--radius-card);
		background: var(--surface);
		color: var(--text);
		font: inherit;
		font-size: var(--text-sm);
		text-align: left;
		cursor: pointer;
	}

	.scene-detail-about-label[b-08fjstb1a7] {
		flex: 0 0 auto;
		font-weight: 600;
	}

	.scene-detail-about-cast[b-08fjstb1a7] {
		flex: 1 1 auto;
		min-width: 0;
		overflow: hidden;
		white-space: nowrap;
		text-overflow: ellipsis;
		color: var(--text-dim);
	}

	.scene-detail-about-toggle[b-08fjstb1a7]  .scene-detail-about-chevron {
		flex: 0 0 auto;
		margin-left: auto;
		color: var(--text-dim);
	}

	.scene-detail-about[b-08fjstb1a7] {
		display: none;
	}

	.scene-detail-aside-open .scene-detail-about[b-08fjstb1a7] {
		display: flex;
		margin-top: 10px;
	}

	.scene-detail-cast[b-08fjstb1a7] {
		flex-direction: row;
		flex-wrap: wrap;
		gap: var(--space-3) var(--space-5);
	}

	.scene-detail-log[b-08fjstb1a7] {
		padding: var(--space-3) var(--space-4);
	}
}

.scene-pause-form[b-08fjstb1a7] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	padding: var(--space-4) var(--space-5) var(--space-5);
}

.scene-pause-hint[b-08fjstb1a7] {
	margin: 0;
	font-size: var(--text-sm);
	color: var(--text-faint);
}

.scene-pause-when[b-08fjstb1a7] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3) var(--space-5);
}

.scene-pause-when[b-08fjstb1a7]  .scene-pause-date,
.scene-pause-when[b-08fjstb1a7]  .scene-pause-time {
	flex: 1 1 12rem;
}

.scene-pause-buttons[b-08fjstb1a7] {
	display: flex;
	gap: var(--space-3);
}

.scene-detail-pitch[b-08fjstb1a7] {
	margin: 0;
	max-width: 70ch;
	white-space: pre-line;
	color: var(--text-dim);
}

.scene-edit-form[b-08fjstb1a7] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	padding: var(--space-4) var(--space-5) var(--space-5);
}

.scene-edit-form[b-08fjstb1a7]  .scene-edit-date,
.scene-edit-form[b-08fjstb1a7]  .scene-edit-time {
	flex: 1 1 12rem;
}

.scene-calendar[b-08fjstb1a7] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	margin-top: 12px;
	padding-top: var(--space-4);
	border-top: 1px solid var(--border);
	font-size: var(--text-sm);
}

.scene-calendar-label[b-08fjstb1a7] {
	color: var(--text-faint);
}

.scene-calendar a[b-08fjstb1a7] {
	display: inline-flex;
	align-items: center;
	gap: var(--space-3);
	color: var(--accent);
	text-decoration: none;
}

.scene-calendar a:hover[b-08fjstb1a7] {
	text-decoration: underline;
}

/* The header, then poses' places, while the scene loads. */
.scene-detail-skeleton[b-08fjstb1a7] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}
/* /Pages/SceneLive.razor.rz.scp.css */
.scene-live-page[b-p31qm3tit7] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

/* The scene's name leads; the room, the state and the pose count sit above it as the kicker. */
.scene-live-header[b-p31qm3tit7] {
    padding: var(--space-5) var(--cpad);
    border-bottom: 1px solid var(--border);
    background: var(--surface);
    display: flex;
    align-items: center;
    gap: var(--space-5);
    flex-shrink: 0;
}

.scene-live-heading[b-p31qm3tit7] {
    min-width: 0;
    flex: 1;
}

.scene-live-kicker[b-p31qm3tit7] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-3) var(--space-3);
    font-size: var(--text-sm);
    color: var(--text-dim);
}

.scene-live-room[b-p31qm3tit7] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}

.scene-live-title[b-p31qm3tit7] {
    margin: 4px 0 0;
    font-size: var(--text-lg);
    font-weight: 700;
    line-height: 1.25;
    color: var(--text);
    overflow-wrap: anywhere;
}

.scene-live-header[b-p31qm3tit7]  .scene-live-archive {
    flex-shrink: 0;
}

/* One line under the header for whichever connection is down; it does not push the story about. */
.scene-live-banner[b-p31qm3tit7] {
    flex-shrink: 0;
    padding: var(--space-3) var(--cpad);
    background: var(--warn-tint);
    border-bottom: 1px solid color-mix(in srgb, var(--warn) 40%, transparent);
    color: var(--text);
    font-size: var(--text-sm);
}

/* column-reverse anchors the story at its newest pose, so a pose that arrives is a pose in view. */
.scene-live-scroll[b-p31qm3tit7] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    display: flex;
    flex-direction: column-reverse;
}

/* The story and the composer share one column: wide enough on a desktop for well over 80 characters a
   line, as a telnet client shows them, but not stretched across a 2560px monitor. */
.scene-live-story[b-p31qm3tit7],
.scene-live-card[b-p31qm3tit7] {
    width: 100%;
    max-width: 72rem;
    margin: 0 auto;
    box-sizing: border-box;
}

.scene-live-story[b-p31qm3tit7] {
    padding: var(--space-5) var(--cpad) var(--space-6);
    font-family: var(--font-ui);
}

.scene-live-compose[b-p31qm3tit7] {
    flex-shrink: 0;
    padding: 0 var(--cpad) var(--space-5);
}

.scene-live-card[b-p31qm3tit7] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-4) var(--space-4);
    border: 1px solid var(--border);
    border-radius: 16px;
    background: var(--surface-2);
    transition: border-color var(--motion-fade), background var(--motion-fade);
}

.scene-live-card:focus-within[b-p31qm3tit7] {
    border-color: var(--accent);
}

/* OOC is said where everyone can see it is OOC: the composer takes the OOC band's colours. */
.scene-live-compose--ooc .scene-live-card[b-p31qm3tit7] {
    background: var(--ooc-band-bg);
    border-color: var(--ooc-band-border);
}

.scene-live-bar[b-p31qm3tit7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
}

.scene-live-bar-end[b-p31qm3tit7] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    min-width: 0;
}

/* Where the draft is kept: quiet, beside the format menu. */
.scene-live-saved[b-p31qm3tit7] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
    font-size: var(--text-sm);
    color: var(--text-dim);
    white-space: nowrap;
}

.scene-live-saved[data-state="DeviceOnly"][b-p31qm3tit7] {
    color: var(--warn);
}

.scene-live-compose--ooc[b-p31qm3tit7]  .kit-chip--on {
    background: color-mix(in srgb, var(--ooc-icon-bg) 60%, transparent);
    box-shadow: inset 0 0 0 1px var(--ooc-band-border);
    color: var(--ooc-icon-fg);
}

/* The field (FormattedInput) renders the textarea, so the rules reach it through ::deep. Three lines
   tall to start, growing to about eight before it scrolls. */
.scene-live-compose[b-p31qm3tit7]  .scene-live-field {
    width: 100%;
}

.scene-live-compose[b-p31qm3tit7]  .scene-live-input {
    width: 100%;
    box-sizing: border-box;
    min-height: calc(3lh + 4px);
    max-height: calc(8lh + 4px);
    field-sizing: content;
    padding: var(--space-1) var(--space-1);
    border: 0;
    background: transparent;
    color: var(--text);
    font: inherit;
    font-family: var(--font-ui);
    font-size: var(--text-base);
    line-height: 1.6;
    resize: none;
    outline: none;
}

.scene-live-compose[b-p31qm3tit7]  .scene-live-tool {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--text-dim);
    cursor: pointer;
}

.scene-live-compose[b-p31qm3tit7]  .scene-live-tool:hover,
.scene-live-compose[b-p31qm3tit7]  .scene-live-tool[aria-expanded="true"] {
    background: var(--surface-3);
    color: var(--text);
}

.scene-live-compose[b-p31qm3tit7]  .scene-live-tool:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.scene-live-foot[b-p31qm3tit7] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-4);
}

/* Why the game did not record the last pose: what it told the character, which otherwise reaches only the terminal. */
.scene-live-refusal[b-p31qm3tit7] {
    font-size: var(--text-sm);
    color: var(--warn);
}

.scene-live-hint[b-p31qm3tit7] {
    font-size: var(--text-sm);
    color: var(--text-dim);
}

.scene-live-send[b-p31qm3tit7] {
    height: 34px;
    padding: 0 var(--space-5) 0 var(--space-4);
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    border: 0;
    border-radius: 17px;
    background: var(--accent);
    color: var(--accent-on);
    font: inherit;
    font-size: var(--text-sm);
    font-weight: 700;
    cursor: pointer;
}

.scene-live-send:disabled[b-p31qm3tit7] {
    opacity: 0.45;
    cursor: default;
}

.scene-live-send:focus-visible[b-p31qm3tit7] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

/* A paused or finished scene takes no poses: say so where the composer would be. */
.scene-live-closed[b-p31qm3tit7] {
    flex-shrink: 0;
    margin: 0 auto 14px;
    width: calc(100% - 2 * var(--cpad));
    max-width: 72rem;
    box-sizing: border-box;
    padding: var(--space-4) var(--space-5);
    border: 1px dashed var(--border);
    border-radius: 16px;
    color: var(--text-dim);
    font-size: var(--text-base);
    text-align: center;
}

/* While the on-screen keyboard is up the page is pinned to the part of the screen the keyboard leaves (shell.css,
   which has the position: a fixed rule here would answer to the page's query container), as tall as that part; the
   header gives that little room its title only. */
.scene-live-page--keyboard[b-p31qm3tit7] {
    height: var(--vv-height, 100%);
}

.scene-live-page--keyboard .scene-live-kicker[b-p31qm3tit7] {
    display: none;
}

.scene-live-page--keyboard .scene-live-title[b-p31qm3tit7] {
    margin: 0;
    font-size: var(--text-base);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Phone: tighter edges, the archive as an icon, and no keyboard hint where there is no keyboard. Each pose is a
   card, the portrait and name above the text so the text has the whole width, and the composer is a sheet: the
   mode and the format menu in a row, the field beside a round Send. */
@container page (max-width: 48rem) {
    .scene-live-header[b-p31qm3tit7] {
        padding: var(--space-4) var(--space-5);
        gap: var(--space-4);
    }
    .scene-live-title[b-p31qm3tit7] {
        font-size: var(--text-md);
    }
    .scene-live-archive-label[b-p31qm3tit7],
    .scene-live-hint[b-p31qm3tit7] {
        display: none;
    }
    .scene-live-header[b-p31qm3tit7]  .scene-live-archive {
        width: 36px;
        padding: 0;
        justify-content: center;
    }
    .scene-live-banner[b-p31qm3tit7] {
        padding: var(--space-3) var(--space-5);
    }
    .scene-live-story[b-p31qm3tit7] {
        padding: var(--space-3) var(--space-4) var(--space-4);
    }

    .scene-live-story[b-p31qm3tit7]  .story-row--prose {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
        column-gap: var(--space-4);
        row-gap: var(--space-3);
        margin: 8px 0;
        padding: var(--space-4) var(--space-5) var(--space-5);
        border: 1px solid var(--border);
        border-radius: 16px;
        background: var(--surface);
    }
    .scene-live-story[b-p31qm3tit7]  .story-row--prose .story-main {
        display: contents;
    }
    .scene-live-story[b-p31qm3tit7]  .story-row--prose .story-portrait-btn {
        align-self: center;
    }
    .scene-live-story[b-p31qm3tit7]  .story-row--prose .story-portrait {
        width: 32px;
        height: 32px;
        border-radius: 10px;
    }
    .scene-live-story[b-p31qm3tit7]  .story-row--prose .story-head {
        align-items: center;
    }
    .scene-live-story[b-p31qm3tit7]  .story-row--prose .story-body,
    .scene-live-story[b-p31qm3tit7]  .story-row--prose .story-editor {
        grid-column: 1 / -1;
    }
    .scene-live-story[b-p31qm3tit7]  .story-row--band {
        margin: 8px 0;
    }
    .scene-live-story[b-p31qm3tit7]  .kit-ooc {
        margin: 0;
        padding: var(--space-4) var(--space-5);
        border-radius: 16px;
    }

    /* The sheet: edge to edge above the bottom bar, its top corners rounded. */
    .scene-live-compose[b-p31qm3tit7] {
        padding: 0;
    }
    .scene-live-card[b-p31qm3tit7] {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "bar bar"
            "field send";
        align-items: end;
        gap: var(--space-3) var(--space-3);
        padding: var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom, 0px));
        border-width: 1px 0 0;
        border-radius: 18px 18px 0 0;
        background: var(--surface-2);
    }
    .scene-live-bar[b-p31qm3tit7] {
        grid-area: bar;
    }
    .scene-live-compose[b-p31qm3tit7]  .scene-live-field {
        grid-area: field;
        min-width: 0;
    }
    .scene-live-foot[b-p31qm3tit7] {
        display: contents;
    }
    .scene-live-refusal[b-p31qm3tit7] {
        grid-column: 1 / -1;
    }
    .scene-live-send[b-p31qm3tit7] {
        grid-area: send;
        width: 44px;
        height: 44px;
        padding: 0;
        justify-content: center;
        border-radius: 50%;
    }
    .scene-live-send[b-p31qm3tit7]  .mud-icon-root {
        font-size: var(--text-lg);
    }
    .scene-live-send-label[b-p31qm3tit7],
    .scene-live-saved-label[b-p31qm3tit7] {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }
    .scene-live-compose[b-p31qm3tit7]  .scene-live-input {
        min-height: calc(1lh + 20px);
        max-height: calc(6lh + 20px);
        padding: var(--space-4) var(--space-4);
        border-radius: 14px;
        background: var(--surface);
    }
    .scene-live-closed[b-p31qm3tit7] {
        width: calc(100% - 16px);
        margin-bottom: 8px;
    }
}
/* /Pages/Scenes.razor.rz.scp.css */
.scenes-page[b-e62gk7wi0r] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

.scenes-list[b-e62gk7wi0r] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

/* Why Schedule and Start are closed to a character that is not approved. */
.scene-create-needed[b-e62gk7wi0r] {
	align-self: center;
	color: var(--text-faint);
	font-size: var(--text-sm);
}

.scene-start-form[b-e62gk7wi0r] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3) var(--space-5);
	padding: var(--space-4) var(--space-5) var(--space-5);
}

.scene-start-form[b-e62gk7wi0r]  .scene-start-title {
	flex: 1 1 16rem;
}

.scene-start-buttons[b-e62gk7wi0r] {
	display: flex;
	gap: var(--space-3);
}

.scene-schedule-form[b-e62gk7wi0r] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	padding: var(--space-4) var(--space-5) var(--space-5);
}

.scene-schedule-when[b-e62gk7wi0r] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3) var(--space-5);
}

.scene-schedule-when[b-e62gk7wi0r]  .scene-schedule-date,
.scene-schedule-when[b-e62gk7wi0r]  .scene-schedule-time {
	flex: 1 1 12rem;
}

.scene-schedule-hint[b-e62gk7wi0r] {
	margin: 0;
	font-size: var(--text-sm);
	color: var(--text-faint);
}

/* narrow: the start form stacks, and its buttons split the row */
@container page (max-width: 48rem) {
	.scene-start-form[b-e62gk7wi0r] {
		flex-direction: column;
		align-items: stretch;
	}

	.scene-start-form[b-e62gk7wi0r]  .scene-start-title {
		flex: 0 0 auto;
	}

	.scene-start-buttons[b-e62gk7wi0r]  .kit-capsule {
		flex: 1;
		justify-content: center;
	}
}

/* the schedule asked for one page of scenes and got a full one: say the list stops there */
.scenes-list-capped[b-e62gk7wi0r] {
	margin: 4px 0 0;
	font-size: var(--text-sm);
	color: var(--text-faint);
	text-align: center;
}

/* "Scenes where Verse is Marvel", over a list narrowed to one detail value, and the way back to every scene */
.scenes-match[b-e62gk7wi0r] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3) var(--space-4);
	font-size: var(--text-sm);
	color: var(--text-dim);
}
/* /Pages/ScenesActive.razor.rz.scp.css */
.scenes-active-page[b-v5qqv5wyvm] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

.scenes-list[b-v5qqv5wyvm] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}
/* /Pages/Settings.razor.rz.scp.css */
.settings-grid[b-bw9hl1pcs3] {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-5);
}

@container page (max-width: 48rem) {
	.settings-grid[b-bw9hl1pcs3] {
		grid-template-columns: minmax(0, 1fr);
	}
}
/* /Pages/SettingsNotifications.razor.rz.scp.css */
.settings-notify-page[b-c9p0t1w8ny] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	min-width: 0;
	max-width: 48rem;
}

.settings-notify-body[b-c9p0t1w8ny] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--space-5);
}

.settings-notify-state[b-c9p0t1w8ny] {
	margin: 0;
	color: var(--text);
}

.settings-notify-note[b-c9p0t1w8ny] {
	margin: 0;
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.settings-notify-actions[b-c9p0t1w8ny],
.settings-notify-install[b-c9p0t1w8ny] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3);
}

.settings-notify-devices[b-c9p0t1w8ny] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

.settings-notify-device[b-c9p0t1w8ny] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	min-width: 0;
}

.settings-notify-device-text[b-c9p0t1w8ny] {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-width: 0;
}

.settings-notify-device-name[b-c9p0t1w8ny] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3);
	color: var(--text);
	overflow-wrap: anywhere;
}

@container page (max-width: 48rem) {
	.settings-notify-body[b-c9p0t1w8ny] {
		padding: var(--space-4);
	}

	.settings-notify-device[b-c9p0t1w8ny] {
		gap: var(--space-3);
	}
}
/* /Pages/SettingsTheme.razor.rz.scp.css */
.settings-theme-page[b-er9gs2n5kk] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	min-width: 0;
	max-width: 48rem;
}

.settings-theme-char[b-er9gs2n5kk] {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

/* A character's name and look, which opens its settings and closes the others'. */
.settings-theme-head[b-er9gs2n5kk] {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	width: 100%;
	min-width: 0;
	padding: var(--space-5);
	border: 0;
	border-radius: inherit;
	background: none;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.settings-theme-head:focus-visible[b-er9gs2n5kk] {
	outline: 2px solid var(--accent);
	outline-offset: -2px;
}

.settings-theme-head[b-er9gs2n5kk]  .settings-theme-chevron {
	flex: none;
	color: var(--text-dim);
	transition: rotate var(--motion-move);
}

.settings-theme-char.is-open .settings-theme-head[b-er9gs2n5kk]  .settings-theme-chevron {
	rotate: 180deg;
}

.settings-theme-body[b-er9gs2n5kk] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	padding: 0 var(--space-5) var(--space-5);
}

.settings-theme-name[b-er9gs2n5kk] {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-width: 0;
}

.settings-theme-title[b-er9gs2n5kk] {
	font-size: var(--text-md);
	font-weight: 600;
	color: var(--text);
	overflow-wrap: anywhere;
}

.settings-theme-sub[b-er9gs2n5kk],
.settings-theme-note[b-er9gs2n5kk] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.settings-theme-field[b-er9gs2n5kk] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.settings-theme-label[b-er9gs2n5kk] {
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: var(--kicker-tracking);
	text-transform: uppercase;
	color: var(--text-faint);
}

.settings-theme-choices[b-er9gs2n5kk] {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
	gap: var(--space-4) var(--space-3);
}

.settings-theme-option[b-er9gs2n5kk] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	min-width: 0;
}

/* A theme: a small page in it, its name under. */
.settings-theme-choice[b-er9gs2n5kk] {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--space-3);
	min-width: 0;
	padding: var(--space-3);
	border: 1px solid var(--border);
	border-radius: var(--radius-row);
	background: var(--surface-2);
	color: var(--text);
	font: inherit;
	font-size: var(--text-sm);
	text-align: left;
	cursor: pointer;
}

.settings-theme-choice-name[b-er9gs2n5kk] {
	overflow-wrap: anywhere;
	font-weight: 600;
}

.settings-theme-try[b-er9gs2n5kk] {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: var(--space-2);
	min-height: 32px;
	padding: 0 var(--space-3);
	border: 0;
	border-radius: var(--radius);
	background: none;
	color: var(--accent);
	font: inherit;
	font-size: var(--text-sm);
	cursor: pointer;
}

.settings-theme-try:hover[b-er9gs2n5kk] {
	background: color-mix(in srgb, var(--accent) 10%, transparent);
}

.settings-theme-try[aria-pressed="true"][b-er9gs2n5kk] {
	background: color-mix(in srgb, var(--accent) 16%, transparent);
	font-weight: 600;
}

.settings-theme-option.is-trying .settings-theme-choice[b-er9gs2n5kk] {
	border-style: dashed;
	border-color: var(--accent);
}

/* The theme being tried: what it is, and keep or stop, held at the top while the page scrolls. */
.settings-theme-trying[b-er9gs2n5kk] {
	position: sticky;
	top: var(--space-3);
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3) var(--space-4);
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--accent);
	border-radius: var(--radius-row);
	background: var(--surface);
	box-shadow: var(--elev-1, none);
	color: var(--text);
	font-size: var(--text-sm);
}

.settings-theme-trying-text[b-er9gs2n5kk] {
	flex: 1 1 14rem;
	min-width: 0;
}

.settings-theme-trying-actions[b-er9gs2n5kk] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
}

.settings-theme-accents[b-er9gs2n5kk] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3);
}

.settings-theme-own[b-er9gs2n5kk],
.settings-theme-custom[b-er9gs2n5kk] {
	display: inline-flex;
	align-items: center;
	gap: var(--space-3);
	min-height: 36px;
	padding: 0 var(--space-4);
	border: 1px solid var(--border);
	border-radius: 18px;
	background: var(--surface-2);
	color: var(--text);
	font: inherit;
	font-size: var(--text-sm);
	cursor: pointer;
}

.settings-theme-custom input[b-er9gs2n5kk] {
	width: 22px;
	height: 22px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: none;
	cursor: pointer;
}

.settings-theme-dot[b-er9gs2n5kk] {
	width: 36px;
	height: 36px;
	border: 2px solid var(--surface);
	border-radius: 50%;
	background: var(--dot);
	box-shadow: 0 0 0 1px var(--border);
	cursor: pointer;
}

.settings-theme-choice.is-on[b-er9gs2n5kk],
.settings-theme-vision.is-on[b-er9gs2n5kk],
.settings-theme-own.is-on[b-er9gs2n5kk],
.settings-theme-custom.is-on[b-er9gs2n5kk] {
	border-color: var(--accent);
	box-shadow: 0 0 0 1px var(--accent) inset;
}

.settings-theme-dot.is-on[b-er9gs2n5kk] {
	box-shadow: 0 0 0 2px var(--text);
}

.settings-theme-choice:focus-visible[b-er9gs2n5kk],
.settings-theme-try:focus-visible[b-er9gs2n5kk],
.settings-theme-vision:focus-visible[b-er9gs2n5kk],
.settings-theme-own:focus-visible[b-er9gs2n5kk],
.settings-theme-dot:focus-visible[b-er9gs2n5kk],
.settings-theme-custom:focus-within[b-er9gs2n5kk] {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.settings-theme-choice:disabled[b-er9gs2n5kk],
.settings-theme-try:disabled[b-er9gs2n5kk],
.settings-theme-own:disabled[b-er9gs2n5kk],
.settings-theme-dot:disabled[b-er9gs2n5kk] {
	cursor: progress;
}

@container page (max-width: 48rem) {
	.settings-theme-char[b-er9gs2n5kk] {
		padding: var(--space-4);
	}

	.settings-theme-choices[b-er9gs2n5kk] {
		grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
	}
}

/* A colour vision: its name over what it means, so a player who does not know "deutan" still finds theirs. */
.settings-theme-vision[b-er9gs2n5kk] {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-1);
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--border);
	border-radius: var(--radius-row);
	background: var(--surface-2);
	color: var(--text);
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.settings-theme-vision-name[b-er9gs2n5kk] {
	font-weight: 600;
}

.settings-theme-vision-what[b-er9gs2n5kk] {
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.settings-theme-vision:disabled[b-er9gs2n5kk] {
	cursor: default;
}

.settings-theme-visions[b-er9gs2n5kk] {
	grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
}
/* /Pages/Setup.razor.rz.scp.css */
.setup-page[b-flvx1bn26d] {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 100%;
	padding: var(--cpad);
}

.setup-brand[b-flvx1bn26d] {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-4);
	margin-bottom: 1.75rem;
	text-align: center;
}

.setup-brand-title[b-flvx1bn26d] {
	margin: 0;
	font-family: var(--font-display);
	font-size: var(--text-xl);
	font-weight: 700;
	color: var(--text);
	line-height: 1.15;
}

.setup-card[b-flvx1bn26d] {
	width: 100%;
	max-width: 560px;
	background: var(--surface);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow);
	padding: var(--space-7) var(--space-7);
}

/* The card shown while api/setup/status is still outstanding. Same chrome as the real cards so
   the page does not jump when the answer lands, but centred around a spinner so it cannot be
   mistaken for a form that has not finished painting. */
.setup-card--resolving[b-flvx1bn26d] {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-4);
	text-align: center;
}

.setup-card--resolving .setup-lead[b-flvx1bn26d] {
	margin: 0;
}

.setup-kicker[b-flvx1bn26d] {
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: var(--kicker-tracking);
	text-transform: uppercase;
	color: var(--accent);
	margin-bottom: 0.5rem;
}

.setup-title[b-flvx1bn26d] {
	margin: 0;
	font-family: var(--font-display);
	font-size: var(--text-xl);
	font-weight: 600;
	color: var(--text);
	line-height: 1.15;
}

.setup-lead[b-flvx1bn26d] {
	margin: 0.625rem 0 1.375rem;
	font-family: var(--font-ui);
	font-size: var(--text-base);
	line-height: 1.5;
	color: var(--text-dim);
}

.setup-error[b-flvx1bn26d] {
	margin-bottom: 1.125rem;
	padding: var(--space-4) var(--space-4);
	border-radius: var(--radius);
	background: color-mix(in srgb, var(--danger) 10%, transparent);
	border: 1px solid color-mix(in srgb, var(--danger) 35%, transparent);
	color: var(--danger);
	font-family: var(--font-ui);
	font-size: var(--text-sm);
}

.setup-submit[b-flvx1bn26d] {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	height: 44px;
	margin-top: 0.5rem;
	border: none;
	border-radius: var(--radius);
	background: var(--accent);
	color: var(--accent-on);
	font-family: var(--font-ui);
	font-size: var(--text-base);
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: filter var(--motion-fade);
}

.setup-signin[b-flvx1bn26d] {
	margin-top: 1.25rem;
}

.setup-submit:hover:not(:disabled)[b-flvx1bn26d] {
	filter: brightness(1.08);
}

.setup-submit:disabled[b-flvx1bn26d] {
	opacity: 0.6;
	cursor: not-allowed;
}

/* The identity form's save is this step's main action, so it takes the same full-width fill as the others. */
.setup-card[b-flvx1bn26d]  .identity-save {
	width: 100%;
	margin-top: 1.5rem;
}

/* The claim's confirmation, carried onto the first step it hands over to. */
.setup-claimed[b-flvx1bn26d] {
	margin: 0 0 1rem;
	padding: var(--space-4) var(--space-4);
	border-radius: var(--radius);
	background: var(--surface-2);
	border: 1px solid var(--border-soft);
	color: var(--text-dim);
	font-family: var(--font-ui);
	font-size: var(--text-sm);
	line-height: 1.5;
}

/* The quieter of a step's two choices: same footprint as .setup-submit, no fill. */
.setup-secondary[b-flvx1bn26d] {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	height: 44px;
	margin-top: 0.625rem;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius);
	background: transparent;
	color: var(--text);
	font-family: var(--font-ui);
	font-size: var(--text-base);
	font-weight: 600;
	cursor: pointer;
}

.setup-secondary:hover:not(:disabled)[b-flvx1bn26d] {
	background: var(--surface-2);
}

.setup-secondary:disabled[b-flvx1bn26d] {
	opacity: 0.6;
	cursor: not-allowed;
}

.setup-apps[b-flvx1bn26d] {
	list-style: none;
	margin: 0 0 0.75rem;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.setup-app-label[b-flvx1bn26d] {
	display: flex;
	align-items: flex-start;
	gap: var(--space-4);
	padding: var(--space-4) var(--space-5);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius);
	cursor: pointer;
}

.setup-app--unavailable .setup-app-label[b-flvx1bn26d] {
	cursor: not-allowed;
	opacity: 0.7;
}

.setup-app-check[b-flvx1bn26d] {
	margin-top: 0.2rem;
	width: 1rem;
	height: 1rem;
	accent-color: var(--accent);
	flex-shrink: 0;
}

.setup-app-text[b-flvx1bn26d] {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	font-family: var(--font-ui);
}

.setup-app-title[b-flvx1bn26d] {
	font-size: var(--text-base);
	font-weight: 600;
	color: var(--text);
}

.setup-app-desc[b-flvx1bn26d],
.setup-app-note[b-flvx1bn26d] {
	font-size: var(--text-sm);
	line-height: 1.5;
	color: var(--text-dim);
}

.setup-app-note[b-flvx1bn26d] {
	font-style: italic;
}

/* The handlers step: one section per handler, its state, then the four ways to set it. */
.setup-handler[b-flvx1bn26d] {
	margin: 0 0 1rem;
	padding: var(--space-5);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius);
	font-family: var(--font-ui);
}

.setup-handler-title[b-flvx1bn26d],
.setup-group-title[b-flvx1bn26d] {
	margin: 0 0 0.375rem;
	font-size: var(--text-base);
	font-weight: 600;
	color: var(--text);
}

.setup-group-title[b-flvx1bn26d] {
	margin-top: 0.5rem;
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	letter-spacing: var(--kicker-tracking);
	text-transform: uppercase;
	color: var(--text-dim);
}

.setup-group-count[b-flvx1bn26d] {
	margin-left: 0.5rem;
	letter-spacing: 0.04em;
	text-transform: none;
	font-weight: 400;
}

/* A package listed under the one it builds on. */
.setup-app--addon[b-flvx1bn26d] {
	margin-left: 1.5rem;
}

.setup-handler-desc[b-flvx1bn26d],
.setup-handler-now[b-flvx1bn26d] {
	margin: 0 0 0.5rem;
	font-size: var(--text-sm);
	line-height: 1.5;
	color: var(--text-dim);
}

.setup-handler-now[b-flvx1bn26d] {
	color: var(--text);
}

.setup-handler-choices[b-flvx1bn26d] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.setup-choice[b-flvx1bn26d] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	font-size: var(--text-base);
	color: var(--text);
	cursor: pointer;
}

.setup-choice input[type="radio"][b-flvx1bn26d] {
	accent-color: var(--accent);
}

.setup-staff-choices[b-flvx1bn26d] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	margin: 1rem 0 1.25rem;
}

.setup-staff-choice[b-flvx1bn26d] {
	align-items: flex-start;
	padding: var(--space-4);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius);
}

.setup-staff-choice input[type="radio"][b-flvx1bn26d] {
	margin-top: 0.2rem;
}

.setup-staff-choice strong[b-flvx1bn26d] {
	display: block;
	margin-bottom: 0.125rem;
}

.setup-dbref[b-flvx1bn26d] {
	width: 6rem;
	padding: var(--space-2) var(--space-3);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius);
	background: var(--surface-2);
	color: var(--text);
	font-family: var(--font-mono);
	font-size: var(--text-sm);
}

.setup-dbref:disabled[b-flvx1bn26d] {
	opacity: 0.5;
}

.setup-handler-warn[b-flvx1bn26d] {
	margin: 0.5rem 0 0;
	font-size: var(--text-sm);
	color: var(--warn);
}

/* What building onto an existing object would leave not running as shipped. */
.setup-handler-clashes[b-flvx1bn26d] {
	margin: 0.625rem 0 0;
	padding: var(--space-4) var(--space-4);
	border: 1px solid var(--warn);
	border-radius: var(--radius);
	font-size: var(--text-sm);
	line-height: 1.5;
	color: var(--text);
}

.setup-handler-clashes p[b-flvx1bn26d] {
	margin: 0 0 0.375rem;
}

.setup-handler-clashes ul[b-flvx1bn26d] {
	margin: 0 0 0.5rem;
	padding-left: var(--space-5);
	color: var(--text-dim);
}

.setup-handler-clashes code[b-flvx1bn26d] {
	font-family: var(--font-mono);
	color: var(--text);
}

/* Unnamed: under OnboardingLayout there is no .phosphor-page, so this queries .onboarding-shell. */
@container (max-width: 48rem) {
    .setup-page[b-flvx1bn26d] {
        padding: var(--space-5);
        min-height: 100vh;
        min-height: 100svh;
    }
    .setup-card[b-flvx1bn26d] {
        padding: var(--space-6) var(--space-5);
    }
}

/* The handlers step: what each handler is now, with the ways to change it folded under Advanced. */
.setup-handler-summary[b-flvx1bn26d] {
	margin: 0 0 1rem;
	padding-left: var(--space-6);
	font-size: var(--text-base);
	line-height: 1.6;
	color: var(--text);
}

.setup-advanced[b-flvx1bn26d] {
	margin: 0 0 1rem;
}

.setup-advanced-summary[b-flvx1bn26d] {
	margin-bottom: 0.75rem;
	cursor: pointer;
	font-size: var(--text-base);
	color: var(--accent);
	text-decoration: underline;
}

/* The packages step: a search over every package and the switch between recommended and all. */
.setup-pkg-tools[b-flvx1bn26d] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	align-items: center;
	margin: 0 0 0.5rem;
}

.setup-pkg-search[b-flvx1bn26d] {
	flex: 1 1 14rem;
	min-height: 40px;
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--surface);
	color: var(--text);
	font: inherit;
	font-size: var(--text-base);
}

.setup-pkg-tools .setup-pkg-all[b-flvx1bn26d] {
	width: auto;
	height: 40px;
	margin: 0;
	padding: 0 var(--space-5);
}

.setup-pkg-summary[b-flvx1bn26d] {
	margin: 0 0 0.75rem;
	font-size: var(--text-sm);
	color: var(--text-dim);
}

.setup-done-title[b-flvx1bn26d] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

[b-flvx1bn26d] .setup-done-icon {
	color: var(--accent);
	font-size: var(--text-2xl);
}

.setup-done-heading[b-flvx1bn26d] {
	margin: 1.25rem 0 0.5rem;
	font-family: var(--font-kicker);
	font-size: var(--text-xs);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--text-dim);
}

.setup-done-heading + .setup-lead[b-flvx1bn26d] {
	margin-top: 0;
}
/* /Pages/SoftcodeEditor.razor.rz.scp.css */
/* ── Editor shell: three rounded panels with a gap (prototype SoftcodeScreen) ── */
.sc-shell[b-m9oq62suu6] {
    display: flex;
    gap: var(--space-5);
    /* Match the standard content gutter (--cpad) so panels aren't cramped
       against the edges, mirroring the prototype's full-height padding. */
    padding: var(--cpad);
    height: 100%;
    overflow: hidden;
    background: var(--bg);
}

.sc-panel[b-m9oq62suu6] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.sc-pane-objects[b-m9oq62suu6] {
    width: 220px;
    flex-shrink: 0;
    background: var(--surface);
}
.sc-pane-attrs[b-m9oq62suu6] {
    /* Wider than the object pane: each tree level indents its rows. */
    width: 288px;
    flex-shrink: 0;
    background: var(--surface);
}
.sc-pane--collapsed[b-m9oq62suu6] {
    width: 46px;
}
.sc-pane-editor[b-m9oq62suu6] {
    flex: 1;
    min-width: 0;
    background: var(--editor-bg);
}

.sc-editor-toolbar[b-m9oq62suu6] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    flex-shrink: 0;
    min-height: 40px;
    padding: var(--space-3) var(--space-5);
    border-bottom: 1px solid var(--border-soft);
    background: var(--surface-3);
}

/* Status messages use portal colours rather than inheriting Monaco's dark code canvas. */
.sc-pane-editor[b-m9oq62suu6]  .sc-save-feedback {
    background: var(--surface);
}

/* ── Pane bodies ── */
.sc-objects-body[b-m9oq62suu6] {
    flex: 1;
    overflow: hidden;
    padding: var(--space-2);
}

/* The @create / @dig / @open row under the object browser. */
.sc-create-object[b-m9oq62suu6] {
    padding: var(--space-3) var(--space-3);
    background: var(--surface);
    border-top: 1px solid var(--border);
    display: flex;
    gap: var(--space-2);
    align-items: center;
    flex-shrink: 0;
}

.sc-attrs-dbref[b-m9oq62suu6] {
    color: var(--accent);
}

.sc-attrs-body[b-m9oq62suu6] {
    flex: 1;
    overflow-y: auto;
    min-height: 0;
    padding: var(--space-3);
}

.sc-attrs-note[b-m9oq62suu6] {
    padding: var(--space-5);
    color: var(--text-faint);
    font-size: var(--text-sm);
}

/* Monaco's box, and the spinner that holds its place while the bundle loads. */
.sc-editor-host[b-m9oq62suu6] {
    flex: 1;
    min-height: 0;
}

.sc-editor-loading[b-m9oq62suu6] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

/* ── Inline search box (prototype searchBox) ── */
.sc-search[b-m9oq62suu6] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: 0 var(--space-4);
    margin: 0 0.625rem 0.25rem;
    background: var(--surface-3);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    transition: border-color var(--motion-fade);
}
.sc-search:focus-within[b-m9oq62suu6] {
    border-color: var(--accent);
}
.sc-search-input[b-m9oq62suu6] {
    flex: 1;
    min-width: 0;
    padding: var(--space-3) 0;
    background: transparent;
    border: none;
    outline: none;
    color: var(--text);
    font-family: var(--font-ui);
    font-size: var(--text-sm);
}
.sc-search-input[b-m9oq62suu6]::placeholder {
    color: var(--text-faint);
}
.sc-search-clear[b-m9oq62suu6] {
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    border: none;
    background: transparent;
    color: var(--text-faint);
    cursor: pointer;
    border-radius: 5px;
}
.sc-search-clear:hover[b-m9oq62suu6] {
    color: var(--text);
    background: var(--surface-2);
}

/* ── "+ Add" pill in the attribute pane header ── */
.sc-add-btn[b-m9oq62suu6] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius);
    cursor: pointer;
    border: 1px solid rgba(var(--glow), 0.3);
    background: rgba(var(--glow), 0.10);
    color: var(--accent);
    font-family: var(--font-ui);
    font-size: var(--text-xs);
    font-weight: 600;
    transition: background var(--motion-fade);
}
.sc-add-btn:hover:not(:disabled)[b-m9oq62suu6] {
    background: rgba(var(--glow), 0.18);
}
.sc-add-btn:disabled[b-m9oq62suu6] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ── Inline add-attribute row (top of the list) ── */
.sc-add-row[b-m9oq62suu6] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-3);
    margin-bottom: 0.375rem;
    border-radius: var(--radius);
    border: 1px dashed rgba(var(--glow), 0.4);
    background: rgba(var(--glow), 0.05);
}
.sc-add-amp[b-m9oq62suu6] {
    color: var(--accent);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
}
.sc-add-input[b-m9oq62suu6] {
    flex: 1;
    min-width: 0;
    background: transparent;
    border: none;
    outline: none;
    color: var(--text);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    text-transform: uppercase;
}
.sc-add-input[b-m9oq62suu6]::placeholder {
    color: var(--text-faint);
    text-transform: none;
}
.sc-add-icon[b-m9oq62suu6] {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    border: none;
    background: transparent;
    color: var(--accent);
    cursor: pointer;
    border-radius: 6px;
}
.sc-add-icon:hover[b-m9oq62suu6] {
    background: rgba(var(--glow), 0.12);
}


/* ── Toolbar breadcrumb: &FOO`BAR`BAZ, with each branch a link to that attribute ── */
/* Controls keep their size and wrap when the editor pane is narrow. */
.sc-editor-toolbar[b-m9oq62suu6]  > * {
    flex-shrink: 0;
}
.sc-editor-toolbar > .sc-crumb-chevron[b-m9oq62suu6] {
    font-size: var(--text-sm);
    color: var(--text-faint);
}
.sc-editor-toolbar > .sc-crumbs[b-m9oq62suu6] {
    flex-shrink: 1;
    max-width: 100%;
    overflow: hidden;
}
.sc-crumb-obj[b-m9oq62suu6] {
    max-width: 10rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    color: var(--text-dim);
}
.sc-crumbs[b-m9oq62suu6] {
    display: flex;
    align-items: baseline;
    min-width: 0;
    white-space: nowrap;
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    color: var(--accent);
}
.sc-crumb-part[b-m9oq62suu6],
.sc-crumb-sep[b-m9oq62suu6] {
    color: var(--text-dim);
}
.sc-crumb-sep[b-m9oq62suu6] {
    opacity: 0.6;
}
.sc-crumb-link[b-m9oq62suu6] {
    padding: 0;
    border: none;
    background: transparent;
    color: var(--text-dim);
    font: inherit;
    cursor: pointer;
}
.sc-crumb-link:hover[b-m9oq62suu6] {
    color: var(--accent);
    text-decoration: underline;
}
/* Overflow past the end of a flex-end box spills off its start and is clipped there, so a
   long path loses its outermost branches first. */
.sc-crumb-trail[b-m9oq62suu6] {
    display: flex;
    justify-content: flex-end;
    min-width: 0;
    overflow: hidden;
}
.sc-crumb-leaf[b-m9oq62suu6] {
    flex-shrink: 0;
    font-weight: 600;
}


/* Hidden on desktop, where all three panes show side by side as authored. Both this rule
   and the reveal in the phone block below are scoped, so they carry equal specificity and
   the media query wins on source order. A global `.mobile-only` helper cannot do this job:
   scoped CSS appends a [b-<hash>] attribute to every selector here, outbidding any plain
   utility class. */
.sc-mobilebar[b-m9oq62suu6] {
    display: none;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    background: var(--surface-3);
    border-bottom: 1px solid var(--border-soft);
    flex-shrink: 0;
}
.sc-mobiletab[b-m9oq62suu6] {
    flex: 1;
    min-height: 38px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--text-dim);
    font-family:var(--font-mono);
    font-size: var(--text-sm);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
}
.sc-mobiletab--on[b-m9oq62suu6] {
    border-color: var(--accent);
    color: var(--accent);
    background: rgba(var(--glow), 0.1);
}
.sc-mobiletab:disabled[b-m9oq62suu6] { opacity: 0.4; cursor: default; }
.sc-mobiletab--icon[b-m9oq62suu6] {
    flex: 0 0 44px;
    display: grid;
    place-items: center;
    padding: 0;
}
.sc-mobiletab--editor[b-m9oq62suu6] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-width: 0;
    padding: 0 var(--space-4);
}

/* Mobile: one full-height pane at a time, chosen by the switcher. The editor pane keeps
   a real height so Monaco lays out; panes scroll internally rather than the page. */
@container page (max-width: 48rem) {
    .sc-mobilebar[b-m9oq62suu6] {
        display: flex;
    }
    .sc-shell[b-m9oq62suu6] {
        flex-direction: column;
        height: 100%;
        overflow: hidden;
        gap: 0;
        padding: 0;
    }
    .sc-shell .sc-panel[b-m9oq62suu6] {
        width: 100%;
        flex: 1 1 auto;
        min-height: 0;
        min-width: 0;
    }
    .sc-shell--objects .sc-pane-attrs[b-m9oq62suu6],
    .sc-shell--objects .sc-pane-editor[b-m9oq62suu6],
    .sc-shell--attrs   .sc-pane-objects[b-m9oq62suu6],
    .sc-shell--attrs   .sc-pane-editor[b-m9oq62suu6],
    .sc-shell--editor  .sc-pane-objects[b-m9oq62suu6],
    .sc-shell--editor  .sc-pane-attrs[b-m9oq62suu6] {
        display: none;
    }
    /* The pane switcher above already shows the open attribute's whole name. */
    .sc-crumbs[b-m9oq62suu6],
    .sc-crumb-chevron[b-m9oq62suu6] {
        display: none;
    }
    /* The editor toolbar has many controls — let them wrap instead of clipping. */
    .sc-editor-toolbar[b-m9oq62suu6] { min-height: 0; }
}
/* /Pages/Welcome.razor.rz.scp.css */
.welcome[b-vrkpapw3ob] { max-width: 72rem; margin: 0 auto; padding: clamp(var(--space-5), 3vw, var(--space-8)); color: var(--text); }
.welcome-intro[b-vrkpapw3ob] { display: flex; align-items: center; gap: var(--space-7); margin-bottom: 2.5rem; }
.welcome-intro div[b-vrkpapw3ob] { flex: 1; min-width: 0; }
.welcome p[b-vrkpapw3ob] { max-width: 65ch; line-height: 1.7; margin-block: .8rem; }
.welcome-art[b-vrkpapw3ob] { width: min(30%, 16rem); height: auto; object-fit: contain; }
.welcome-paths h2[b-vrkpapw3ob] { font-size: var(--text-lg); margin-bottom: .85rem; }
.welcome-path-list[b-vrkpapw3ob] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.welcome-path-list button[b-vrkpapw3ob] { text-align: left; display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-5); border: 1px solid var(--border); border-radius: 8px; color: var(--text); background: var(--surface); cursor: pointer; }
.welcome-path-list button[aria-pressed=true][b-vrkpapw3ob] { border-color: var(--accent); box-shadow: inset 3px 0 var(--accent); }
.welcome-path-list strong[b-vrkpapw3ob] { font-size: var(--text-md); }
.welcome-path-list span[b-vrkpapw3ob] { color: var(--text-faint); line-height: 1.5; }
.welcome-links[b-vrkpapw3ob] { display: flex; flex-wrap: wrap; gap: var(--space-5); margin: 1.25rem 0; }
.welcome-journey[b-vrkpapw3ob] { display: grid; grid-template-columns: minmax(10rem, 1fr) minmax(0, 3fr); gap: var(--space-6); margin-top: 2rem; align-items: start; }
.welcome-steps ol[b-vrkpapw3ob] { padding-left: var(--space-6); }
.welcome-steps li[b-vrkpapw3ob] { margin-bottom: .55rem; padding-left: var(--space-1); }
.welcome-steps button[b-vrkpapw3ob] { background: transparent; border: 0; padding: var(--space-3); text-align: left; cursor: pointer; color: var(--text); line-height: 1.4; }
.welcome-steps button[aria-current=step][b-vrkpapw3ob] { font-weight: 700; text-decoration: underline; text-underline-offset: .25em; }
.welcome-steps span[b-vrkpapw3ob] { font-size: var(--text-sm); }
.welcome-notice[b-vrkpapw3ob] { padding: var(--space-5); border: 1px solid var(--border); margin-block: 1rem; }
.welcome-notice button[b-vrkpapw3ob] { padding: var(--space-3); margin-right: .5rem; color: var(--text); background: var(--surface); border: 1px solid var(--border); cursor: pointer; }
.welcome-imagery[b-vrkpapw3ob] { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-4); margin-top: 2rem; }
.welcome-imagery select[b-vrkpapw3ob] { padding: var(--space-4); color: var(--text); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); }
.welcome-exit[b-vrkpapw3ob] { margin-top: 2rem; color: var(--text-faint); }
.welcome a:not([class])[b-vrkpapw3ob] { color: var(--accent); text-decoration: underline; text-underline-offset: .2em; }
.welcome-explore[b-vrkpapw3ob] { display: inline-flex; align-items: center; min-height: 44px; margin-top: .5rem; padding: 0 var(--space-6); border-radius: 6px; background: var(--accent); color: var(--accent-on); font-weight: 600; text-decoration: none; }
.welcome :focus-visible[b-vrkpapw3ob] { outline: 2px solid var(--accent); outline-offset: 4px; }
@container page (max-width: 48rem) { .welcome-path-list[b-vrkpapw3ob], .welcome-journey[b-vrkpapw3ob] { grid-template-columns: 1fr; } .welcome-steps ol[b-vrkpapw3ob] { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); } .welcome-steps li[b-vrkpapw3ob] { flex-basis: 44%; } .welcome-intro[b-vrkpapw3ob] { gap: var(--space-3); } }

.welcome[data-guide-imagery="reduced"] .welcome-art[b-vrkpapw3ob] { width: min(20%, 6rem); }
.welcome-completed[b-vrkpapw3ob] { display: flex; align-items: center; gap: var(--space-5); margin-block: 1.5rem; }
.welcome-completion-art[b-vrkpapw3ob] { width: 88px; height: 88px; object-fit: contain; flex: none; }
@container page (max-width: 48rem) { .welcome-completion-art[b-vrkpapw3ob] { width: 64px; height: 64px; } }
.welcome[data-guide-imagery="reduced"] .welcome-completion-art[b-vrkpapw3ob] { width: 40px; height: 40px; }
/* /Pages/WikiCollection.razor.rz.scp.css */
.wiki-collection-route[b-uk540bunxf] { min-width: 0; padding: var(--space-6); }

@container page (max-width: 48rem) {
    .wiki-collection-route[b-uk540bunxf] { padding: var(--space-5); }
}
/* /Pages/WikiIndex.razor.rz.scp.css */
.wiki-index-page[b-3okpkriz5v] {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--aside-w);
	gap: var(--space-5);
	align-items: start;
}

/* a layout saved before the right zone existed renders it empty: give the column back */
.wiki-index-page:has(.wiki-index-aside:empty)[b-3okpkriz5v] {
	grid-template-columns: minmax(0, 1fr);
}

.wiki-index-main[b-3okpkriz5v] {
	min-width: 0;
}

.wiki-index-aside[b-3okpkriz5v] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	min-width: 0;
}

/* README §3: main and aside stay side by side at the medium tier; only narrow stacks them */
@container page (max-width: 48rem) {
	.wiki-index-page[b-3okpkriz5v] {
		grid-template-columns: minmax(0, 1fr);
	}
}
/* /Pages/WikiPage.razor.rz.scp.css */
/* Intentionally empty: this route renders only <WikiView Mode="View">, whose own stylesheet
   carries every rule. EveryRoutablePageHasAStylesheet requires the file to exist. */
/* /Pages/WikiPageDiff.razor.rz.scp.css */
.wikidiff[b-5hxqp64igh] {
    padding: var(--cpad);
}
.wikidiff[b-5hxqp64igh]  .kit-page-head {
    margin-bottom: 1.125rem;
}

.wikidiff-toggle[b-5hxqp64igh] {
    display: flex;
    gap: var(--space-2);
    padding: var(--space-2);
    background: var(--surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius);
    flex-shrink: 0;
}
.wikidiff-toggle-btn[b-5hxqp64igh] {
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius);
    border: none;
    cursor: pointer;
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    font-weight: 600;
    background: transparent;
    color: var(--text-dim);
}
.wikidiff-toggle-btn.active[b-5hxqp64igh] {
    background: rgba(var(--glow), 0.12);
    color: var(--accent);
}

.wikidiff-revbar[b-5hxqp64igh] {
    display: flex;
    align-items: center;
    gap: var(--space-5);
    margin-bottom: 0.875rem;
}
.wikidiff-revcard[b-5hxqp64igh] {
    flex: 1;
    min-width: 0;
    padding: var(--space-4) var(--space-5);
    background: var(--surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius);
}
.wikidiff-revcard--new[b-5hxqp64igh] {
    border-color: rgba(var(--glow), 0.3);
}
.wikidiff-revdate[b-5hxqp64igh] {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--text);
}
.wikidiff-revmeta[b-5hxqp64igh] {
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    color: var(--text-faint);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wikidiff-stats[b-5hxqp64igh] {
    display: flex;
    align-items: center;
    gap: var(--space-5);
    margin-bottom: 0.75rem;
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    flex-wrap: wrap;
}
.wikidiff-stat-add[b-5hxqp64igh] { color: var(--accent); }
.wikidiff-stat-del[b-5hxqp64igh] { color: var(--danger); }
.wikidiff-stat-sum[b-5hxqp64igh] { color: var(--text-faint); }

.wikidiff-body[b-5hxqp64igh] {
    background: var(--surface-3);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    overflow: hidden;
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    line-height: 1.65;
}
.wikidiff-line[b-5hxqp64igh] {
    display: flex;
    border-left: 2px solid transparent;
}
.wikidiff-line--add[b-5hxqp64igh] {
    background: rgba(var(--glow), 0.07);
    border-left-color: var(--accent);
}
.wikidiff-line--del[b-5hxqp64igh] {
    background: color-mix(in srgb, var(--danger) 8%, transparent);
    border-left-color: var(--danger);
}
.wikidiff-line--ctx[b-5hxqp64igh] { background: transparent; }
.wikidiff-gutter[b-5hxqp64igh] {
    width: 26px;
    flex-shrink: 0;
    text-align: center;
    user-select: none;
    border-right: 1px solid var(--border-soft);
    padding: var(--space-1) 0;
    color: var(--text-faint);
}
.wikidiff-gutter--add[b-5hxqp64igh] { color: var(--accent); }
.wikidiff-gutter--del[b-5hxqp64igh] { color: var(--danger); }
.wikidiff-line--ctx .wikidiff-text[b-5hxqp64igh] { color: var(--text-dim); }
.wikidiff-line--del .wikidiff-text[b-5hxqp64igh] { color: var(--text-dim); }
.wikidiff-text[b-5hxqp64igh] {
    padding: var(--space-1) var(--space-5);
    color: var(--text);
    white-space: pre-wrap;
    word-break: break-word;
}
.wikidiff-hunk[b-5hxqp64igh] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-5);
    background: var(--surface-2);
    border-top: 1px solid var(--border-soft);
    border-bottom: 1px solid var(--border-soft);
    color: var(--text-faint);
    font-size: var(--text-xs);
}

.wikidiff-split[b-5hxqp64igh] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: transparent;
    border: none;
    border-radius: 0;
    overflow: visible;
}
.wikidiff-split-col[b-5hxqp64igh] { min-width: 0; }
.wikidiff-split-head[b-5hxqp64igh] {
    padding: var(--space-3) var(--space-4);
    font-family: var(--font-kicker);
    font-size: var(--text-xs);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-dim);
    border: 1px solid var(--border-soft);
    border-bottom: none;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
.wikidiff-split-head--old[b-5hxqp64igh] { background: color-mix(in srgb, var(--danger) 8%, transparent); }
.wikidiff-split-head--new[b-5hxqp64igh] { background: rgba(var(--glow), 0.07); }
.wikidiff-pane[b-5hxqp64igh] {
    background: var(--surface-3);
    border: 1px solid var(--border-soft);
    border-top: none;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    padding: var(--space-4);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    line-height: 1.7;
    white-space: pre;
    margin: 0;
    max-height: 70vh;
    max-height: 70svh;
    overflow-y: auto;
    color: var(--text);
}

@container page (max-width: 64rem) {
    .wikidiff-split[b-5hxqp64igh] { grid-template-columns: minmax(0, 1fr); }
}

@container page (max-width: 48rem) {
    .wikidiff[b-5hxqp64igh] { padding: var(--cpad-mobile); }
    .wikidiff-pane[b-5hxqp64igh] { max-height: 50vh; max-height: 50svh; }
}
/* /Pages/WikiPageEdit.razor.rz.scp.css */
/* The route has no section around it, so it pads the editor the way a section body pads its page. */
.wiki-edit-host[b-ecsxk3gl5k] {
    height: 100%;
    box-sizing: border-box;
    padding: var(--main-pad);
}
/* /Pages/WikiPageHistory.razor.rz.scp.css */
.wikihist[b-gy1j41gqjv] {
    padding: var(--cpad);
}
.wikihist[b-gy1j41gqjv]  .kit-page-head {
    margin-bottom: 0.5rem;
}
.wikihist-intro[b-gy1j41gqjv] {
    margin: 0 0 1.25rem;
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    color: var(--text-dim);
}
.wikihist-intro strong[b-gy1j41gqjv] { color: var(--text); }

/* Phones: tighten the gutter (the kit header wraps its Compare button on its own), and
   make the fixed-column revision table scroll horizontally inside its own box
   instead of forcing the whole page wide. Selectors are doubled / descendant-
   qualified to match the scoped (.razor.css) rules' specificity and win on order. */
@container page (max-width: 48rem) {
    .wikihist.wikihist[b-gy1j41gqjv] { padding: var(--cpad-mobile); }
    .wikihist-table[b-gy1j41gqjv] { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .wikihist-table > div[b-gy1j41gqjv] { min-width: 560px; }
}

/* Copied from WikiDisplay.razor.css rather than shared: Blazor CSS isolation is per-component,
   so the chip row needs its own rules in this scope. */
.wiki-lang-chips[b-gy1j41gqjv] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin: 0 0 0.75rem;
    font-size: var(--text-sm);
}

.wiki-lang-chips-label[b-gy1j41gqjv] {
    color: var(--text-faint);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.wiki-lang-chips a[b-gy1j41gqjv] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-1) var(--space-3);
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 999px;
    color: var(--text-dim);
    text-decoration: none;
}

.wiki-lang-chips a:hover[b-gy1j41gqjv] {
    color: var(--mud-palette-primary);
    border-color: var(--mud-palette-primary);
}
/* /Pages/WikiQuery.razor.rz.scp.css */
.wiki-query[b-vkc4jep9vv] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}
/* /Pages/WikiRecent.razor.rz.scp.css */
.wiki-recent[b-73wh8hh8r8] {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

.wiki-recent-list[b-73wh8hh8r8] {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	padding: var(--space-3);
}
/* /Pages/WorldMap.razor.rz.scp.css */
.map-page[b-rzmcd9mse3] {
	padding: var(--cpad);
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

.map-panes[b-rzmcd9mse3] {
	display: grid;
	grid-template-columns: minmax(10rem, 14rem) minmax(0, 1fr);
	gap: var(--space-5);
	align-items: start;
}

.map-main[b-rzmcd9mse3] {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	min-width: 0;
}

.map-note[b-rzmcd9mse3] {
	color: var(--text-dim);
	margin: 0;
}

.map-tree[b-rzmcd9mse3] {
	list-style: none;
	margin: 0;
	padding: 0;
}

.map-tree .map-tree[b-rzmcd9mse3] {
	padding-left: var(--space-5);
	border-left: 1px solid var(--border-soft);
	margin-left: 6px;
}

.map-tree-link[b-rzmcd9mse3] {
	display: block;
	padding: var(--space-3) var(--space-4);
	border-radius: var(--radius-row);
	color: var(--text);
	text-decoration: none;
}

.map-tree-link:hover[b-rzmcd9mse3] {
	background: var(--surface-2);
}

.map-tree-link--on[b-rzmcd9mse3] {
	background: var(--surface-2);
	color: var(--accent);
	font-weight: 600;
}

.map-room-body[b-rzmcd9mse3] {
	padding: var(--space-4) var(--space-5);
}

.map-exits[b-rzmcd9mse3] {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--space-3);
}

.map-exits li[b-rzmcd9mse3] {
	display: flex;
	gap: var(--space-4);
	align-items: baseline;
	flex-wrap: wrap;
}

.map-exit-name[b-rzmcd9mse3] {
	font-weight: 600;
}

.map-exit-to[b-rzmcd9mse3] {
	background: none;
	border: 0;
	padding: 0;
	color: var(--accent);
	font: inherit;
	cursor: pointer;
	text-decoration: underline;
}

.map-exit-to--unknown[b-rzmcd9mse3],
.map-exit-to--off[b-rzmcd9mse3] {
	color: var(--text-faint);
	text-decoration: none;
	cursor: default;
}

.map-exit-to--off[b-rzmcd9mse3] {
	color: var(--text-dim);
}

/* A description keeps its own line breaks, as a client shows it. */
.map-room-desc[b-rzmcd9mse3] {
	margin: 0 0 8px;
	white-space: pre-line;
}

.map-room-people[b-rzmcd9mse3] {
	margin: 0 0 8px;
	color: var(--text-dim);
}

.map-place-closed[b-rzmcd9mse3] {
	margin: 0 0 8px;
	color: var(--text-dim);
	font-style: italic;
}

.map-place-image[b-rzmcd9mse3] {
	display: block;
	max-width: 100%;
	margin: 0 0 8px;
	border-radius: var(--radius);
}

.map-place-info[b-rzmcd9mse3] {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: var(--space-1) var(--space-4);
	margin: 0 0 8px;
}

.map-place-info dt[b-rzmcd9mse3] {
	color: var(--text-dim);
}

.map-place-info dd[b-rzmcd9mse3] {
	margin: 0;
}

@container page (max-width: 48rem) {
	.map-panes[b-rzmcd9mse3] {
		grid-template-columns: minmax(0, 1fr);
	}

	/* On a phone the map comes first; the list of maps follows it. */
	.map-list[b-rzmcd9mse3] {
		order: 2;
	}
}

.map-trail ol[b-rzmcd9mse3] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	list-style: none;
	margin: 0;
	padding: 0;
	color: var(--text-dim);
}

.map-trail li + li[b-rzmcd9mse3]::before {
	content: "/";
	margin-right: 6px;
}

.map-trail a[b-rzmcd9mse3] {
	color: var(--accent);
}

.map-trail [aria-current][b-rzmcd9mse3] {
	color: var(--text);
}

.map-levels[b-rzmcd9mse3] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	align-items: center;
}

.map-route[b-rzmcd9mse3] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	margin-top: 12px;
	padding-top: var(--space-4);
	border-top: 1px solid var(--border-soft);
}

.map-route-title[b-rzmcd9mse3] {
	margin: 0;
	font: 600 var(--text-sm)/1.2 var(--font-ui);
	color: var(--text-dim);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.map-route-steps[b-rzmcd9mse3] {
	margin: 0;
	padding-left: 1.5em;
}

.map-route-command[b-rzmcd9mse3] {
	display: flex;
	gap: var(--space-3);
	align-items: center;
}

.map-route-command code[b-rzmcd9mse3] {
	flex: 1;
	min-width: 0;
	padding: var(--space-3) var(--space-4);
	border-radius: var(--radius);
	background: var(--code-bg);
	color: var(--code-text);
	font-family: var(--font-mono);
	overflow-wrap: anywhere;
}

.map-route-error[b-rzmcd9mse3] {
	margin: 0;
	color: var(--danger);
}


.map-route-map[b-rzmcd9mse3] {
	color: var(--accent);
}

.map-editing[b-rzmcd9mse3] {
	margin: 0;
	padding: var(--space-3) var(--space-4);
	border-radius: var(--radius);
	background: var(--warn-tint);
	color: var(--text);
}

.map-applied-list[b-rzmcd9mse3] {
	margin: 0;
	padding: var(--space-4) var(--space-5) var(--space-4) calc(var(--space-5) + 1.5em);
}

.map-applied--failed[b-rzmcd9mse3] {
	color: var(--danger);
}

.map-applied--notrun[b-rzmcd9mse3] {
	color: var(--text-faint);
}

.map-legend[b-rzmcd9mse3] {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3) var(--space-5);
	margin: 8px 0 0;
	padding: 0;
	list-style: none;
	color: var(--text-dim);
	font: var(--text-sm)/1.2 var(--font-ui);
}

.map-legend li[b-rzmcd9mse3] {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.map-legend-swatch[b-rzmcd9mse3] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border: 2px solid var(--border);
	border-radius: 6px;
	background: var(--surface);
	font-weight: 600;
}

.map-credit[b-rzmcd9mse3] {
	margin: 6px 0 0;
	color: var(--text-faint);
	font: var(--text-xs)/1.3 var(--font-ui);
}

.map-credit a[b-rzmcd9mse3] {
	color: inherit;
}

.map-legend-swatch--toned[b-rzmcd9mse3] {
	border-color: var(--room-tone);
	color: color-mix(in srgb, var(--room-tone) 70%, var(--text));
	background: color-mix(in srgb, var(--room-tone) 22%, var(--surface));
}

.map-new-form[b-rzmcd9mse3] {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	margin-top: 12px;
	padding-top: var(--space-4);
	border-top: 1px solid var(--border-soft);
}

.map-new-title[b-rzmcd9mse3] {
	margin: 0;
	font: 600 var(--text-base)/1.3 var(--font-ui);
}

.map-new-error[b-rzmcd9mse3] {
	margin: 0;
	color: var(--warn);
}

.map-new-actions[b-rzmcd9mse3] {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: var(--space-3);
}
