/* Portal pages on the configurator design tokens (styles/tokens.css, resources/colors.md). */
.pp-header { display: flex; flex: 1; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.pp-nav { display: flex; gap: 1rem; flex-wrap: wrap; }
.pp-nav a[aria-current="page"] { font-weight: 600; text-decoration: underline; }
.pp-right { display: flex; align-items: center; gap: .75rem; }
.pp-user { color: var(--iq-text-body); font-size: .9rem; }
.pp-narrow { max-width: 28rem; margin: 2rem auto; }
.pp-form { display: grid; gap: .75rem; }
.pp-field-error { color: var(--iq-state-error); font-size: .85rem; }
.pp-field-error:empty { display: none; }
[aria-invalid="true"] { border-color: var(--iq-state-error); }
.pp-notice { background: var(--iq-bg-alt); color: var(--iq-state-ok); padding: .6rem .9rem; border-radius: 8px; margin: .5rem 0; }
.pp-badge { display: inline-block; padding: .1rem .5rem; border-radius: 999px; font-size: .85rem; }
.pp-ok { background: var(--iq-bg-alt); color: var(--iq-state-ok); }
.pp-warn { background: var(--iq-bg-alt); color: var(--iq-state-warn); }
.pp-muted { background: var(--iq-bg-alt); color: var(--iq-text-body); }
.pp-stat h2 { font-size: 1rem; margin: 0; }
.pp-big { font-size: 1.6rem; font-weight: 600; margin: .3rem 0; }
.pp-actions { display: flex; gap: .75rem; flex-wrap: wrap; }
.pp-link-field { width: 100%; }
.pp-register { margin-top: 1rem; }
.pp-register summary { cursor: pointer; font-weight: 600; }
textarea { min-height: 4rem; }
