/* Classic square style for the public part.
 *
 * The portal is intentionally square: no rounded corners anywhere, strong
 * 1 px hairlines and the same typography as before. Client decision
 * (2026-11-14): keep only the classic look, drop all radius/rounded presets and
 * leave alternative layouts to a fresh, model-authored effort instead of
 * framework skins.
 *
 * Tokens are still variables so a future own layout can change typography
 * without touching the shared markup.
 */

:root,
:root[data-ui="classic"] {
	--ui-radius: 0;
	--ui-radius-sm: 0;
	--ui-radius-card: 0;
	--ui-radius-pill: 0;
	--ui-heading-font: inherit;
	--ui-heading-weight: 700;
	--ui-heading-transform: none;
	--ui-letter: 0;
	--ui-card-border: 1px solid var(--line);
	--ui-card-shadow: none;
	--ui-button-border: 1px solid transparent;
	--ui-button-transform: none;
	--ui-button-weight: 500;
	--ui-section-gap: 2.4rem;
}

/* Apply the tokens to the shared markup. */
h1,
h2,
h3,
h4 {
	font-family: var(--ui-heading-font);
	font-weight: var(--ui-heading-weight);
	text-transform: var(--ui-heading-transform);
	letter-spacing: var(--ui-letter);
}

main.machine a[role="button"],
main.machine button,
.hero-actions a[role="button"],
.landing-body button,
.theme-switch button {
	border-radius: var(--ui-radius-pill);
	font-weight: var(--ui-button-weight);
	text-transform: var(--ui-button-transform);
}

.landing-body article,
.norm-grid article,
.commit-grid article,
.machine-facts,
.doc-row,
.pin-box,
.machine-photo,
.phone {
	border-radius: var(--ui-radius-card);
	border: var(--ui-card-border);
	box-shadow: var(--ui-card-shadow);
}

.doc-row,
.pin-box,
.phone-screen {
	border-radius: var(--ui-radius);
}

.rev-pill,
.badge,
.doc-lock,
.lang-switch a,
.lang-switch .lang-active {
	border-radius: var(--ui-radius-pill);
}

.site-header,
.site-footer {
	border-color: var(--line);
}

.section {
	padding: var(--ui-section-gap) 0;
}

/* Fulltext search in the public manuals (SPEC R-116/R-118). */
.doc-search {
	margin: 1.2rem 0;
	padding: 1rem;
	border: 1px solid var(--line);
	border-radius: 0;
	background: var(--surface);
}

.doc-search label {
	display: block;
	margin-bottom: 0.4rem;
	font-weight: 600;
}

.doc-search-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
}

.doc-search-row input {
	margin: 0;
	flex: 1 1 12rem;
	min-width: 0;
}

.doc-search-row button {
	margin: 0;
	width: auto;
}

.search-hit {
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--line);
}

.search-hit:last-child {
	border-bottom: 0;
}

.search-snippet {
	margin: 0.3rem 0 0;
	font-size: 0.9rem;
	color: var(--ink-soft);
}

.search-snippet mark {
	background: var(--brand-soft);
	color: var(--ink);
	padding: 0 0.1em;
	border-radius: 0;
}
