/* Own portal usability refinements, loaded after portal.css. No Core, marketing or admin selectors. */
.speo-portal .sp-field-help,
.speo-portal .sp-form-note,
.speo-portal .sp-step p,
.speo-portal .sp-site-copy .sp-site-note,
.speo-portal .sp-member-copy p,
.speo-portal .sp-member-role,
.speo-portal .sp-member .sp-caption,
.speo-portal .sp-usage .sp-caption,
.speo-portal .sp-usage > .sp-muted { font-size: .875rem; }
.speo-portal .sp-team-capacity-note { margin-top: -12px; margin-bottom: 24px; font-size: .875rem; }
.speo-portal .sp-usage-reset { margin-top: 16px; font-size: .875rem; }
.speo-portal .sp-team-upgrade { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; padding-block: 8px 28px; }
/* Identity and actual access stay together; routine role changes precede removal. */
.speo-portal .sp-member { display: grid; grid-template-columns: 44px minmax(0,1fr) minmax(10rem,auto); gap: 16px 20px; }
.speo-portal .sp-member-copy { min-width: 0; }
.speo-portal .sp-member-access { min-width: 0; }
.speo-portal .sp-member-controls { grid-column: 2 / -1; min-width: 0; display: flex; flex-wrap: wrap; align-items: end; gap: 16px 24px; }
.speo-portal .sp-member-controls:empty { display: none; }
.speo-portal .sp-role-editor { flex: 1 1 25rem; min-width: 0; max-width: 36rem; }
.speo-portal .sp-role-editor .sp-form { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 12px; max-width: none; }
.speo-portal .sp-role-editor button { background: var(--sp-paper); color: var(--sp-ink); border-color: var(--sp-control); }
.speo-portal .sp-role-editor button:hover { background: #eeede6; }
.speo-portal .sp-member-remove { min-width: 0; max-width: 100%; }
.speo-portal .sp-member-remove > summary { min-height: 44px; padding-block: 10px; color: #8b2936; cursor: pointer; font-size: .875rem; }
.speo-portal .sp-member-remove[open] { flex-basis: 100%; }
.speo-portal .sp-member-remove > p { max-width: 42rem; margin-block: 4px 16px; color: var(--sp-muted); font-size: .875rem; }
.speo-portal .sp-member-remove button { color: #8b2936; background: #fff; border-color: #a45d67; }
.speo-portal .sp-member-remove button:hover { background: #fff0f1; }
.speo-portal .sp-sidebar > .sp-brand { min-width: 0; max-width: 100%; flex-wrap: wrap; }
/* Tablet space belongs to the content; the same native keyboard disclosure works without JS. */
@media (max-width: 1023px) {
	.speo-portal.sp-private { display: block; }
	.speo-portal .sp-sidebar { position: relative; min-height: auto; max-height: none; overflow: visible; display: flex; flex-flow: row wrap; align-items: center; padding: 18px 24px 0; gap: 0 16px; }
	.speo-portal .sp-sidebar > .sp-brand { flex: 0 0 auto; margin: 0; padding-bottom: 16px; }
	.speo-portal .sp-sidebar .sp-brand svg { width: 32px; height: 32px; }
	.speo-portal .sp-sidebar .sp-brand span { font-size: 2rem; }
	.speo-portal .sp-workspace { flex: 1 1 160px; min-width: 0; justify-content: flex-end; padding: 0 0 16px; margin: 0; border: 0; text-align: right; }
	.speo-portal .sp-workspace-mark { display: none; }
	.speo-portal .sp-workspace strong { max-width: 220px; font-size: .8rem; }
	.speo-portal .sp-workspace span:not(.sp-workspace-mark) { font-size: .75rem; overflow-wrap: anywhere; }
	.speo-portal .sp-sidebar > .sp-account-switcher { flex: 0 0 100%; max-width: 100%; margin: 0 0 8px; }
	.speo-portal .sp-desktop-nav,
	.speo-portal .sp-sidebar-foot { display: none; }
	.speo-portal .sp-mobile-nav { flex: 1 0 100%; min-width: 0; max-width: 100%; display: block; border-top: 1px solid #ffffff26; }
	.speo-portal .sp-mobile-nav > summary { display: flex; justify-content: space-between; align-items: center; min-height: 48px; list-style: none; cursor: pointer; font-size: .875rem; }
	.speo-portal .sp-mobile-nav > summary::-webkit-details-marker { display: none; }
	.speo-portal .sp-mobile-nav > summary > span { font-size: 1.2rem; }
	.speo-portal .sp-mobile-nav[open] > summary > span { transform: rotate(45deg); }
	.speo-portal .sp-mobile-nav .sp-nav-list { padding-bottom: 10px; }
	.speo-portal .sp-mobile-nav .sp-nav-list a { min-height: 48px; }
	.speo-portal .sp-mobile-links { display: flex; flex-wrap: wrap; gap: 8px 24px; padding-block: 2px 12px; border-top: 1px solid #ffffff26; font-size: .875rem; }
	.speo-portal .sp-mobile-links a { max-width: 100%; overflow-wrap: anywhere; display: flex; align-items: center; min-height: 44px; }
	.speo-portal .sp-settings-grid,
	.speo-portal .sp-setup-grid { grid-template-columns: minmax(0,1fr); gap: 24px; }
	.speo-portal .sp-setup-progress { position: static; }
	.speo-portal .sp-site-row,
	.speo-portal .sp-overview-grid .sp-site-row { grid-template-columns: 38px minmax(0,1fr); gap: 12px; }
	.speo-portal .sp-site-glyph { width: 38px; height: 38px; border-radius: 8px; }
	.speo-portal .sp-site-state,
	.speo-portal .sp-overview-grid .sp-site-state { grid-column: 2; }
	.speo-portal .sp-site-actions,
	.speo-portal .sp-overview-grid .sp-site-actions { grid-column: 2; margin-top: 0; }
}
@media (max-width: 767px) {
	.speo-portal .sp-member { grid-template-columns: 44px minmax(0,1fr); gap: 12px; }
	.speo-portal .sp-member > .sp-member-access { grid-column: 2; margin-left: 0; width: auto; }
	.speo-portal .sp-member-controls { grid-column: 1 / -1; }
	.speo-portal .sp-role-editor .sp-form { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 389px) {
	.speo-portal .sp-sidebar { padding-inline: 20px; }
}
/* Account identities are ordinary text; long mailboxes must never become oversized KPI figures. */
.speo-portal .sp-account-email { margin-block: 12px 20px; font-size: 1.25rem; font-weight: 500; line-height: 1.4; overflow-wrap: anywhere; }
.speo-portal .sp-email-settings .sp-muted { font-size: 1rem; }
/* Instructions affecting access and collection remain readable alongside the primary values. */
.speo-portal .sp-site-manage,
.speo-portal .sp-metrics dt,
.speo-portal .sp-metrics p { font-size: .875rem; line-height: 1.6; }
.speo-portal .sp-current-plan .sp-subscription-pending { background: #e8e5ef; color: #494358; }
.speo-portal .sp-current-plan .sp-subscription-warning { background: #fff0d1; color: #76501a; }
.speo-portal .sp-plan-selected { border-color: var(--sp-purple); box-shadow: inset 0 0 0 1px var(--sp-purple); }
.speo-portal .sp-plan-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,16em),1fr)); }
/* Native links keep the cadence selector keyboard- and no-JS-operable; prices come from the server quote. */
.speo-portal .sp-cadence-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 24px; margin-block: 24px 32px; }
.speo-portal .sp-cadence { display: inline-flex; flex-wrap: wrap; max-width: 100%; padding: 5px; border: 1px solid var(--sp-line); border-radius: 12px; background: #eeede6; }
.speo-portal .sp-cadence a { display: flex; align-items: center; justify-content: center; min-height: 44px; max-width: 100%; padding: 10px 22px; border-radius: 8px; font-size: 1rem; overflow-wrap: anywhere; }
.speo-portal .sp-cadence a[aria-current] { background: var(--sp-ink); color: #fff; }
.speo-portal .sp-annual-saving { padding: 8px 12px; border-radius: 6px; background: var(--sp-lime); color: var(--sp-ink); font-size: .875rem; font-weight: 500; transform: rotate(-4deg); }
.speo-portal .sp-plan-payment-note { margin-block: 12px 24px; color: var(--sp-muted); font-size: .875rem; line-height: 1.5; }
.speo-portal .sp-language-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; font-size: .875rem; }
.speo-portal .sp-language-nav a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 8px; border: 1px solid transparent; border-radius: 7px; font-weight: 500; }
.speo-portal .sp-language-nav a[aria-current] { border-color: currentColor; }
.speo-portal .sp-sidebar-foot .sp-language-nav { padding-block: 0 12px; }
.speo-portal .sp-public-header > .sp-language-nav { margin-inline-start: auto; }
@media (max-width: 1023px) {
	.speo-portal .sp-mobile-links > .sp-language-nav { flex-basis: 100%; padding-block: 12px 0; }
}
/* Raise small decision-making copy, not the whole type scale; preserve independent print styles. */
@media screen {
	.speo-portal .sp-field label,
	.speo-portal .sp-public-header nav,
	.speo-portal .sp-entry-price > span,
	.speo-portal .sp-test-context,
	.speo-portal .sp-workspace strong,
	.speo-portal .sp-workspace span:not(.sp-workspace-mark),
	.speo-portal .sp-sidebar-foot > span,
	.speo-portal .sp-step strong,
	.speo-portal .sp-code-block > label,
	.speo-portal .sp-required,
	.speo-portal .sp-field-help,
	.speo-portal .sp-form-note,
	.speo-portal .sp-caption,
	.speo-portal .sp-source,
	.speo-portal .sp-badge,
	.speo-portal .sp-plan-price > span,
	.speo-portal .sp-plan ul,
	.speo-portal .sp-public-footer,
	.speo-portal .sp-sidebar-foot,
	.speo-portal .sp-step p,
	.speo-portal .sp-copy-status,
	.speo-portal .sp-invoice-addresses h3,
	.speo-portal .sp-invoice-dates dt,
	.speo-portal .sp-invoice-note { font-size: .875rem; line-height: 1.6; }
	.speo-portal .sp-field :is(input:not([type="checkbox"]),select,textarea) { font-size: 1rem; }
	.speo-portal .sp-nav-list a { font-size: .875rem; }
}
