.readonly-fields { border:0; padding:0; margin:0; min-width:0; }
.readonly-fields[disabled] button { opacity:.55; cursor:not-allowed; }

.event-settings { display:grid; gap:16px; margin-top:20px; }
.event-settings-card { border:1px solid var(--line,#dce3df); border-radius:10px; min-width:0; overflow:hidden; }
.event-settings-card > h2 { margin:0; padding:12px 16px; background:#f3f7f5; font-size:1rem; color:var(--navy); }
.event-setting { border-top:1px solid var(--line,#dce3df); }
.event-setting > summary { display:grid; grid-template-columns:minmax(140px,1fr) minmax(120px,1fr) auto; align-items:center; gap:12px; padding:14px 16px; cursor:pointer; list-style:none; font-size:.9rem; }
.event-setting > summary::-webkit-details-marker { display:none; }
.event-setting > summary:hover, .event-setting[open] > summary { background:#fafcfb; }
.event-setting > summary:focus-visible { outline:2px solid var(--navy); outline-offset:-3px; }
.event-setting > summary strong { font-size:.85rem; overflow-wrap:anywhere; }
.event-setting__change { color:var(--navy); text-decoration:underline; font-weight:600; }
.event-setting__body { padding:0 16px 16px; max-width:680px; }
.event-setting__body > p { font-size:.85rem; line-height:1.5; margin:0 0 12px; color:var(--muted,#556661); }
.event-setting__body .profile-form > div { display:grid; gap:14px; min-width:0; }
.event-setting__links { display:flex; flex-wrap:wrap; gap:12px 24px; padding:14px 16px; border-top:1px solid var(--line,#dce3df); font-size:.85rem; }
.event-settings-notice { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:16px; padding:12px 16px; background:#fff8e5; border-radius:8px; }
.event-settings-notice .button { display:inline-flex; align-items:center; min-height:42px; padding:10px 16px; font-size:.85rem; text-decoration:none; }
.event-settings-notice p { flex:1 1 250px; margin:0; font-size:.85rem; }
@media (max-width:600px) {
    .event-setting > summary { grid-template-columns:minmax(0,1fr) auto; gap:6px 12px; padding:12px; }
    .event-setting__label { grid-column:1; }
    .event-setting > summary strong { grid-row:2; grid-column:1; }
    .event-setting__change { grid-row:1 / 3; grid-column:2; }
    .event-setting__body { padding-inline:12px; }
}

/* Shared, compact forms for the write workflows. */
.profile-form { gap:18px; }
.write-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 22px; min-width:0; }
.write-form-grid > .form-field--wide, .write-form-grid > .form-submit { grid-column:1 / -1; }
.write-form-grid > .form-field--half { grid-column:auto; }
.profile-form .write-section { margin:0; padding:18px; min-width:0; border:1px solid var(--line,#dce3df); border-radius:10px; background:#fafcfb; }
.profile-form .write-section > legend, .profile-form .write-section > summary { font-size:1rem; font-weight:700; color:var(--navy); }
.profile-form .write-section > summary { cursor:pointer; min-height:24px; padding-block:0; }
.profile-form .write-section[open] > summary { margin-bottom:14px; }
.profile-form .form-field { margin:0; min-width:0; gap:6px; align-content:start; }
.profile-form .form-field :is(input:not([type=checkbox]):not([type=radio]),select,textarea),
.profile-form :is(form > label, fieldset > label) :is(input,select,textarea), .event-search > label :is(input,select), .form-actions > input {
    box-sizing:border-box; width:100%; min-width:0; max-width:100%; padding:10px 12px; border:1px solid #c8d2ce; border-radius:7px; background:#fff; color:var(--text,#17262a); font:inherit; font-size:.9rem;
}
.profile-form .form-field textarea { min-height:110px; resize:vertical; }
.profile-form .form-check label { display:flex; align-items:center; gap:9px; margin:0; min-height:42px; }
.profile-form .form-check input { flex:0 0 auto; width:18px; height:18px; padding:0; accent-color:var(--navy); }
.profile-form .form-check label span { color:inherit; }
.profile-form .form-help { font-size:.78rem; line-height:1.4; color:var(--muted,#556661); }
.profile-form .form-errors { padding-left:18px; margin:6px 0; color:#9a263c; font-size:.86rem; }
.profile-form > fieldset:not(.write-section) { min-width:0; padding:0; margin:0; border:0; }
.profile-form :is(form > label, fieldset > label), .event-search > label { display:grid; gap:6px; min-width:0; font-weight:600; font-size:.85rem; }
.profile-form fieldset > label { margin-bottom:14px; }
.profile-form .form-submit { margin-top:4px; }
.profile-form .button { min-height:42px; }
.form-actions { flex-wrap:wrap; }
.form-actions > input { width:auto; flex:1 1 220px; }
.event-search > label { flex:1 1 250px; }
@media (max-width:680px) {
    .profile-page { padding:24px 18px; }
    .profile-page__intro { gap:14px; padding-bottom:18px; }
    .profile-page__intro h1 { font-size:clamp(1.6rem,7vw,2rem); line-height:1.12; letter-spacing:-.025em; }
    .profile-page__layout { padding-top:18px; gap:22px; }
    .profile-sections { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .profile-sections a { padding:12px 9px; min-height:44px; display:flex; align-items:center; }
    .write-form-grid { grid-template-columns:minmax(0,1fr); gap:14px; }
    .profile-form .write-section { padding:14px 12px; }
    .profile-form .form-field :is(input:not([type=checkbox]):not([type=radio]),select,textarea), .profile-form :is(form > label, fieldset > label) :is(input,select,textarea), .event-search > label :is(input,select) { font-size:16px; }
    .profile-form .form-submit .button { width:100%; }
    .form-actions { align-items:stretch; }
    .form-actions > .button { width:100%; }
}
.profile-form .form-field.form-check label { justify-content:flex-start; }
.profile-form .form-field.form-check label > span:not(.form-field__optional) { color:inherit; }
.choice-filter { margin-bottom:7px; }
.profile-form :is(form > label, fieldset > label):has(input[type=checkbox]) { display:flex; align-items:center; gap:9px; }
.profile-form :is(form > label, fieldset > label) > input[type=checkbox] { width:18px; height:18px; flex:0 0 auto; }

/* Manual forms share the same controls and spacing as Symfony forms. */
.profile-form :is(input, select, textarea):focus-visible,
.event-search :is(input, select):focus-visible {
    outline:3px solid rgba(44,112,100,.24); outline-offset:2px; border-color:var(--teal,#286e63);
}
.profile-form :is(input, select, textarea)[aria-invalid="true"] { border-color:#9a263c; }
.profile-form button:disabled, .event-search button:disabled, .legacy-actions button:disabled { opacity:.55; cursor:not-allowed; }
.profile-form > .form-field + .form-field { margin-top:0; }
.profile-form .write-form-grid > .form-field { margin:0; }
.profile-form .form-field label { display:block; margin-bottom:0; }
.profile-form .form-field.form-check label { display:flex; }
.profile-form :is(input, select, textarea):disabled { background:#f0f3f1; color:#66746e; }
.profile-form input[type=file] { white-space:normal; }
.profile-form input[type=file]::file-selector-button { border:0; border-radius:5px; padding:7px 10px; margin-right:10px; background:#e8efeb; color:var(--navy); cursor:pointer; }
.write-status { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:16px 0; color:var(--muted,#556661); font-size:.9rem; }
.write-status strong { padding:5px 10px; border:1px solid #d4e2dc; border-radius:20px; background:#edf4f0; color:#235d51; }
.write-status--pending strong, .write-status--waiting strong { background:#fff6df; border-color:#ecdfbd; color:#76581c; }
.write-danger { margin-top:24px; padding:16px; border:1px solid #e7cbd0; border-radius:9px; background:#fffafb; }
.write-danger > summary { color:#8b2940; font-weight:600; cursor:pointer; }
.write-danger p { font-size:.9rem; }
.write-danger .button, .button--danger { color:#8b2940; border:1px solid #d9b4be; background:#fff; box-shadow:none; }
.write-registration-form { max-width:600px; }
.write-registration-form .form-submit { margin-top:18px; }
.membership-management .membership-row { display:grid; grid-template-columns:minmax(0,1fr) auto; }
.membership-management .legacy-actions { margin:0; }
:is(.profile-form,.event-search,.membership-management) .button:not(.button--primary) { border:1px solid #c8d2ce; background:#fff; color:var(--navy); box-shadow:none; }
:is(.profile-form,.event-search,.membership-management) .button.button--danger { color:#8b2940; border-color:#d9b4be; }
@media (max-width:680px) {
    .profile-form__actions { gap:12px; }
    .profile-form__actions > .button, .profile-form > .button, .profile-form > fieldset > .button { width:100%; }
    .membership-row > .legacy-actions { width:100%; margin-top:10px; }
    .membership-row > .legacy-actions .button { flex:1 1 auto; }
    .membership-management .membership-row { grid-template-columns:minmax(0,1fr); }
    .membership-management .legacy-actions { margin:0; }
    .event-search:has(> label) > .button:only-of-type { width:100%; }
    .write-danger .button { width:100%; white-space:normal; }
}
