/*
 * WebUpp Platform Theme: the base stylesheet (handle "webupp-platform-theme", loaded before
 * sections.css). The neutral default register's pieces that are not a
 * block's own: the browser frame (inc/browser-frame.php) and the signing
 * form's save link. Colours are the --wu-* slots (defaults in sections.css,
 * values from the active theme.json palette), so a site running the parent
 * alone gets grey and white, and a child restyles the frame in its own
 * stylesheet. No brand colour, font or decoration lives here.
 *
 * 2.0.0: was assets/css/theme.css. The spike's light bands (.upp-band,
 * .upp-band--tint) and the portfolio loop rule (.upp-portfolio) were
 * removed: no page on any child matched them (coverage pass, R9).
 */

/* A long word or address in the content wraps instead of widening the page
   (break-word changes no layout where nothing overflows). */
.upp-main {
	overflow-wrap: break-word;
}

/* Browser frame (inc/browser-frame.php): a screenshot in minimal chrome. */
.upp-frame {
	--upp-frame-bar: 30px;
	margin: 0;
	overflow: hidden;
	border: 1px solid var(--wu-line);
	border-radius: 10px;
	background: var(--wu-ground);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), 0 12px 32px -8px rgba(0, 0, 0, 0.16);
}

.upp-frame__bar {
	display: flex;
	align-items: center;
	gap: 12px;
	height: var(--upp-frame-bar);
	padding-inline: 12px;
	border-bottom: 1px solid var(--wu-line);
	background: var(--wu-ground);
}

.upp-frame__dots {
	display: inline-flex;
	flex: none;
	gap: 6px;
}

.upp-frame__dots span {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wu-line-strong);
}

.upp-frame__address {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-width: 0;
	max-width: 60%;
	margin-inline: auto;
	padding: 3px 12px;
	border-radius: 999px;
	background: var(--wu-surface);
	color: var(--wu-muted);
	font-size: 11px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.01em;
	white-space: nowrap;
}

.upp-frame__domain {
	overflow: hidden;
	text-overflow: ellipsis;
}

.upp-frame__lock {
	flex: none;
	opacity: 0.7;
}

.upp-frame__screen {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--wu-surface);
}

.upp-frame__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
}

/* A phone source wraps the image in <picture> (webupp_browser_frame 'phone'); the
   image keeps sizing against the screen. */
.upp-frame__screen > picture {
	display: contents;
}

/* The "plain" frame variant (3.2.0, webupp_frame()): the image alone, cropped
   as the screen, with the image radius and no edge, shadow or bar. */
.upp-frame--plain {
	border: 0;
	border-radius: var(--wu-image-radius, var(--wu-radius, 10px));
	background: none;
	box-shadow: none;
}

/* Balances the dots so the address pill sits on the frame's centre line. */
.upp-frame__bar::after {
	content: "";
	flex: none;
	width: 36px;
}

/* Signing forms (WebUpp Platform, includes/legal.php): the Save and Continue link shows only once
   the signer has ticked "sign these terms" (checkbox field class
   upp-sign-gate), as the live form's inline script did. Without :has()
   support the link simply stays visible. */
.gform_wrapper:has(.upp-sign-gate input[type="checkbox"]:not(:checked)) .gform_save_link {
	display: none;
}
