.rio-form-shell { max-inline-size: 880px; margin-inline: auto; }
.rio-content-shell { max-inline-size: 1040px; margin-inline: auto; }
.rio-form { display: flex; flex-direction: column; gap: var(--rio-space-32); }
.rio-form-shell .rio-masthead-top h1,
.rio-page-header h1 {
font-family: var(--rio-font-body);
font-weight: 800;
font-size: var(--rio-fs-display);
line-height: 1.15;
letter-spacing: -0.018em;
color: var(--rio-text-hi);
margin: 0 0 var(--rio-space-16);
}
.rio-fieldset {
border: 1px solid var(--rio-line);
border-radius: 14px;
background: var(--rio-surface);
box-shadow: var(--rio-shadow-card);
padding: var(--rio-space-32);
margin: 0;
overflow: visible;
}
.rio-fieldset-legend,
.rio-fieldset > legend {
font-family: var(--rio-font-body);
font-weight: 700;
font-size: var(--rio-text-12);
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--rio-text-mute);
padding: 0 var(--rio-space-8);
margin-inline-start: var(--rio-space-8);
}
.rio-radio {
display: flex;
align-items: flex-start;
gap: var(--rio-space-12);
min-block-size: 52px;
padding: var(--rio-space-16);
border: 1px solid var(--rio-line-strong);
border-radius: 10px;
background: var(--rio-surface);
font-size: var(--rio-text-14);
color: var(--rio-text-hi);
cursor: pointer;
transition: border-color var(--rio-dur-fast) var(--rio-ease), background-color var(--rio-dur-fast) var(--rio-ease);
}
.rio-radio + .rio-radio { margin-block-start: var(--rio-space-12); }
.rio-radio:hover { border-color: var(--rio-text-faint); background: var(--rio-raised); }
.rio-radio:focus-within { border-color: var(--rio-accent-focus); box-shadow: 0 0 0 4px var(--rio-accent-ring); }
.rio-radio input[type="radio"] { inline-size: 20px; block-size: 20px; margin-block-start: 0.2em; accent-color: var(--rio-rust); flex: none; }
.rio-radio > span { display: inline-flex; align-items: center; gap: var(--rio-space-8); flex-wrap: wrap; }
.rio-radio > span strong { font-weight: 700; }
.rio-radio-desc { font-weight: var(--rio-weight-regular); color: var(--rio-text); }
.rio-input--inline { display: inline-block; inline-size: auto; min-block-size: 36px; padding: 6px var(--rio-space-8); }
.rio-field-error { color: var(--rio-danger); font-size: var(--rio-text-13); margin: var(--rio-space-8) 0 0; }
.rio-fieldset-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
column-gap: var(--rio-space-24);
row-gap: var(--rio-space-24);
}
.rio-field--full,
.rio-field--textarea,
.rio-field--file { grid-column: 1 / -1; }
@media (max-width: 768px) {
.rio-fieldset-grid { grid-template-columns: 1fr; }
}
.rio-check {
display: inline-flex;
align-items: center;
gap: var(--rio-space-8);
font-size: var(--rio-text-14);
color: var(--rio-text-hi);
cursor: pointer;
}
.rio-check input[type="checkbox"] { inline-size: 18px; block-size: 18px; accent-color: var(--rio-rust); flex: none; }
.rio-field--checkbox { justify-content: center; }
.rio-field-errors { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.rio-file-current a { color: var(--rio-rust); }
.rio-form-actions {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: var(--rio-space-16);
margin-block-start: var(--rio-space-32);
padding-block-start: var(--rio-space-24);
border-block-start: 1px solid var(--rio-line);
}
.rio-action-bar-end {
margin-inline-start: auto;
display: inline-flex;
align-items: center;
flex-wrap: wrap;
gap: var(--rio-space-16);
}
.rio-form-actions-spacer { display: none; }
.rio-inline-section { margin-block-start: var(--rio-space-32); }
.rio-inline-section__header {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: var(--rio-space-16);
padding: var(--rio-space-16) var(--rio-space-20);
border-block-end: 1px solid var(--rio-line);
}
.rio-inline-section__header h2 {
font-family: var(--rio-font-display);
font-weight: var(--rio-weight-display);
font-size: var(--rio-text-20);
color: var(--rio-text-hi);
margin: 0;
}
.rio-inline-section .rio-dtable td { padding-block: 12px; block-size: auto; }
.rio-form--inline {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: flex-end;
gap: var(--rio-space-16);
}
.rio-form--inline .rio-form-field {
display: flex;
flex-direction: column;
gap: var(--rio-space-6);
flex: 1 1 200px;
min-inline-size: 0;
}
.rio-form--inline .rio-form-field > span {
font-weight: var(--rio-weight-semibold);
font-size: var(--rio-text-14);
color: var(--rio-text-hi);
}
.rio-form--inline .rio-btn { flex: 0 0 auto; }