/* ============================================================================
   The Haupt-Grundbuchsblatt on screen (join form, member sheet, admin).
   Positions and type sizes come from includes/fisa.php in millimetres of the
   A4 sheet; --mm turns them into pixels for the width the sheet has.
   On narrow screens the sheet becomes an ordinary form, field after field.
   ========================================================================== */
@font-face { font-family: "IR61 Fisa Serif"; src: url("../fonts/fisa/fisa-serif.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: block; }
@font-face { font-family: "IR61 Fisa Serif"; src: url("../fonts/fisa/fisa-serif-bold.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: block; }
@font-face { font-family: "IR61 Fisa Sans"; src: url("../fonts/fisa/fisa-sans.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: block; }
@font-face { font-family: "IR61 Fisa Sans"; src: url("../fonts/fisa/fisa-sans-bold.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: block; }
@font-face { font-family: "IR61 Fisa Fraktur"; src: url("../fonts/fisa/fisa-fraktur.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: block; }

.fisa { container-type: inline-size; width: 100%; margin: 0 auto; --ink: #1f3a75; --req: #b3261e; --gold: #c49a35;
  --need-req: #fde3e3;   /* an empty box that must be filled in: pale pink */
  --need-opt: #fff5c6;   /* an empty box that may be filled in: light yellow */
}
.fisa-sheet {
  position: relative; width: 100%; aspect-ratio: 297 / 210; background: #fff; color: #111;
  --mm: calc(100cqw / 297);
  font-family: "IR61 Fisa Serif", "Times New Roman", Times, serif; font-weight: 400;
  font-kerning: none; font-variant-ligatures: none; font-synthesis: none; letter-spacing: 0; word-spacing: 0;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .18), 0 12px 32px -16px rgba(0, 0, 0, .45); border-radius: 2px; overflow: hidden;
}
/* the ruling lies over the boxes, as on paper: a coloured box never hides the lines of its cell */
.fisa-lines { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; stroke: #111; stroke-linecap: square; fill: none; z-index: 2; }
.fisa-t { position: absolute; margin: 0; white-space: nowrap; color: #111; }
.fisa-t .ln { display: block; }
.fisa-t.f-serifb, .fisa-t.f-sansb { font-weight: 700; }
.fisa-t.f-sans, .fisa-t.f-sansb { font-family: "IR61 Fisa Sans", Arial, sans-serif; }
.fisa-t.f-frak { font-family: "IR61 Fisa Fraktur", "UnifrakturMaguntia", serif; }
.fisa-t.val { color: var(--ink); }
.fisa .ast { font-size: 1.25em; line-height: 0; }
.fisa-apply .ast.req { color: var(--req); }
.fisa-item { display: contents; }
.fisa-f { position: absolute; }

/* fields: the writing sits in the middle of its box, both ways; a longer text wraps, still centred */
.fisa-f > input, .fisa-f > textarea {
  position: absolute; inset: 0; width: 100%; height: 100%; box-sizing: border-box; margin: 0; border: 0; border-radius: 0;
  background: transparent; color: var(--ink); font-family: "IR61 Fisa Sans", Arial, sans-serif; font-size: calc(var(--mm) * var(--fs, 3.25));
  line-height: 1.15; padding: calc(var(--mm) * .55) calc(var(--mm) * 1.1); resize: none; overflow: hidden; box-shadow: none; outline: none;
  -webkit-appearance: none; appearance: none; min-height: 0; text-align: center;
}
.fisa-f > textarea { overflow-y: auto; scrollbar-width: none; }
.fisa-f > textarea::-webkit-scrollbar { display: none; }
/* with JavaScript the text box takes the height of its text and stays in the middle of the box */
.fisa.js-fit .fisa-f.tx { display: flex; align-items: center; justify-content: center; }
.fisa.js-fit .fisa-f.tx > textarea { position: relative; inset: auto; flex: 0 0 auto; height: auto; max-height: 100%; padding: calc(var(--mm) * .35) calc(var(--mm) * 1.1); }
.fisa-f > input.fn { right: 50%; width: 50%; }
.fisa-f > input.ln2 { left: 50%; width: 50%; }
.fisa-f > input:hover, .fisa-f.tx:hover { box-shadow: inset 0 0 0 1px rgba(196, 154, 53, .55); }
.fisa-f > input:focus, .fisa-f.tx:focus-within { box-shadow: inset 0 0 0 2px var(--gold); }
.fisa-f > textarea:focus { box-shadow: none; }
.fisa-f input::placeholder, .fisa-f textarea::placeholder { color: #a3abbb; font-style: italic; opacity: 1; }
.fisa-f textarea:disabled { background: transparent; cursor: not-allowed; }
.fisa-f input[type="date"] { font-size: calc(var(--mm) * 3.1); }
/* the join form: an empty box is pale pink when it must be filled in, light yellow when it may be; white once written */
.fisa-apply .fisa-f, .fisa-apply .fisa-f > input { transition: background-color .15s; }
.fisa-apply .fisa-f.need-req, .fisa-apply .fisa-f > input.need-req { background-color: var(--need-req); }
.fisa-apply .fisa-f.need-opt, .fisa-apply .fisa-f > input.need-opt { background-color: var(--need-opt); }

/* yes / no: circle the word, as on paper */
.fisa-f .yn { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: calc(var(--mm) * .35); font-family: "IR61 Fisa Sans", Arial, sans-serif; font-size: calc(var(--mm) * 3); color: var(--ink); }
.fisa-f .yn label { position: relative; display: block; cursor: pointer; line-height: 1.2; }
.fisa-f .yn input { position: absolute; width: 1px; height: 1px; opacity: 0; margin: 0; pointer-events: none; }
.fisa-f .yn span { display: block; padding: 0 calc(var(--mm) * .9); border: calc(var(--mm) * .3) solid transparent; border-radius: 50%; color: #8d96a8; }
.fisa-f .yn label:hover span { color: var(--ink); }
.fisa-f .yn input:checked + span { border-color: var(--ink); color: var(--ink); font-weight: 700; }
.fisa-f .yn input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 1px; }

/* the signature */
.fisa-sig { position: absolute; inset: 0; }
.fisa-sig canvas { position: absolute; inset: 0; width: 100%; height: 100%; touch-action: none; cursor: crosshair; }
.fisa-sig .sig-hint { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); white-space: nowrap; font-family: "IR61 Fisa Sans", Arial, sans-serif; font-style: italic; font-size: calc(var(--mm) * 3.2); color: #b6bdca; pointer-events: none; }
.fisa-sig:not(.empty) .sig-hint { display: none; }
.fisa-sig .sig-clear { position: absolute; right: calc(var(--mm) * .6); top: calc(var(--mm) * .5); width: calc(var(--mm) * 4.4); height: calc(var(--mm) * 4.4); min-width: 18px; min-height: 18px; padding: 0; border: 1px solid #d6cfbf; border-radius: 50%; background: #fff; color: #6b6458; font: 700 13px/1 Arial, sans-serif; cursor: pointer; }
.fisa-sig.empty .sig-clear, .fisa-sig.readonly .sig-clear { display: none; }
.fisa-sig-img { position: absolute; left: 2%; top: 6%; width: 96%; height: 88%; object-fit: contain; }

/* what the applicant does not fill in */
.fisa-apply .st-locked .fisa-f { background: repeating-linear-gradient(135deg, rgba(17, 17, 17, .045) 0 calc(var(--mm) * 1.1), transparent calc(var(--mm) * 1.1) calc(var(--mm) * 2.2)); }
/* what a visitor of the profile may not see: the ZENSURIERT stamp, scaled into the box */
.fisa .fisa-hidden { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: calc(var(--mm) * .6); box-sizing: border-box; }
.fisa-zensur { display: block; width: 100%; height: 100%; max-width: calc(var(--mm) * 46); }
/* the registration number, at the top once the sheet has been sent */
.fisa-reg { position: absolute; box-sizing: border-box; border: calc(var(--mm) * .35) solid var(--ink); color: var(--ink); font-family: "IR61 Fisa Sans", Arial, sans-serif; font-weight: 700; text-align: center; white-space: nowrap; }
.fisa-item.err .fisa-f { box-shadow: inset 0 0 0 2px rgba(179, 38, 30, .75); }
.fisa-item.err .fisa-f.need-req, .fisa-item.err .fisa-f > input.need-req { background-color: #fbd0d0; }
.fisa-item.dep-off .fisa-f { opacity: .55; }
.fisa-apply .fisa-item.dep-off .fisa-f { background: repeating-linear-gradient(135deg, rgba(17, 17, 17, .04) 0 6px, transparent 6px 12px); }
.fisa-req-badge { position: absolute; right: calc(var(--mm) * .7); bottom: calc(var(--mm) * .4); font-size: calc(var(--mm) * 2.6); line-height: 1; color: var(--gold); pointer-events: none; }
.fisa-member .m-request .fisa-f { box-shadow: inset 0 0 0 1px rgba(196, 154, 53, .45); }
.fisa-member .m-request.changed .fisa-f, .fisa-member .m-edit.changed .fisa-f { box-shadow: inset 0 0 0 2px rgba(196, 154, 53, .7); }

/* the field rules (Admin → Join form) */
.fisa-rule { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; border-radius: 0; cursor: pointer; background: transparent; color: #111; font: 700 calc(var(--mm) * var(--fs, 3.25) * .8)/1.1 "IR61 Fisa Sans", Arial, sans-serif; display: flex; align-items: center; justify-content: center; text-align: center; overflow: hidden; overflow-wrap: anywhere; }
.fisa-rule:hover { box-shadow: inset 0 0 0 2px var(--gold); }
.fisa-rule:focus-visible { outline: 3px solid var(--gold); outline-offset: -3px; }
.fisa-rule .ra, .fisa-rule .rm, .fisa-rule .rh { display: none; padding: 0 calc(var(--mm) * .6); }
.fisa-config[data-dim="apply"] .fisa-rule .ra, .fisa-config[data-dim="member"] .fisa-rule .rm, .fisa-config[data-dim="hist"] .fisa-rule .rh { display: block; }
.fisa-config[data-dim="hist"] .fisa-rule[data-hist="yes"] { background: rgba(196, 154, 53, .22); color: #6f5413; }
.fisa-config[data-dim="hist"] .fisa-rule[data-hist="no"] { background: rgba(31, 58, 117, .08); color: #1f3a75; }
.fisa-config[data-dim="apply"] .fisa-rule[data-apply="required"] { background: rgba(179, 38, 30, .13); color: #8a1f17; }
.fisa-config[data-dim="apply"] .fisa-rule[data-apply="optional"] { background: rgba(59, 110, 44, .12); color: #2d5622; }
.fisa-config[data-dim="apply"] .fisa-rule[data-apply="admin"], .fisa-config[data-dim="member"] .fisa-rule[data-member="admin"] { background: repeating-linear-gradient(135deg, rgba(17, 17, 17, .07) 0 calc(var(--mm) * 1.1), rgba(17, 17, 17, .02) calc(var(--mm) * 1.1) calc(var(--mm) * 2.2)); color: #4a4a4a; }
.fisa-config[data-dim="member"] .fisa-rule[data-member="edit"] { background: rgba(59, 110, 44, .12); color: #2d5622; }
.fisa-config[data-dim="member"] .fisa-rule[data-member="request"] { background: rgba(196, 154, 53, .2); color: #6f5413; }
.fisa-config[data-dim="apply"] .fisa-rule.locked-apply, .fisa-config[data-dim="member"] .fisa-rule.locked-member, .fisa-config[data-dim="hist"] .fisa-rule.locked-hist { cursor: not-allowed; }

/* the panel under the sheet */
.fisa-legend { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; margin: 10px 2px 0; font-size: .9rem; color: var(--muted, #6f685c); }
.fisa-legend .sw { display: inline-block; width: 18px; height: 14px; vertical-align: -2px; margin-right: 6px; border: 1px solid rgba(0, 0, 0, .25); border-radius: 2px; }
.fisa-legend .sw.req { background: rgba(179, 38, 30, .13); } .fisa-legend .sw.opt { background: rgba(59, 110, 44, .12); }
.fisa-legend .sw.need { background: #fde3e3; }   /* the join form: an empty box that must be filled in */
.fisa-legend .sw.adm { background: repeating-linear-gradient(135deg, rgba(17, 17, 17, .14) 0 4px, rgba(17, 17, 17, .03) 4px 8px); }
.fisa-legend .sw.req2 { background: rgba(196, 154, 53, .25); }
.fisa-legend .sw.hist { background: rgba(196, 154, 53, .22); } .fisa-legend .sw.real { background: rgba(31, 58, 117, .08); }
.fisa-legend b.r { color: #b3261e; font-size: 1.15em; }
.fisa-page { max-width: 1480px; margin: 0 auto; padding: 0 16px; }
.fisa-intro { max-width: 900px; }
.fisa-actions { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; }
.fisa-scroll { overflow-x: auto; padding: 4px 4px 12px; margin: 0 -4px; }

/* ---- narrow screens: the same fields, one after another ---- */
@container (max-width: 700px) {
  .fisa-sheet { aspect-ratio: auto; box-shadow: none; background: transparent; overflow: visible; border-radius: 0; --mm: 3.4px; font-size: 16px; }
  .fisa-lines { display: none; }
  .fisa-head { text-align: center; margin: 0 0 14px; }
  .fisa .fisa-t { position: static !important; width: auto !important; white-space: normal !important; font-size: 15px !important; line-height: 1.3 !important; text-align: left !important; }
  .fisa .fisa-t .ln { display: inline; }
  .fisa-head .fisa-t { text-align: center !important; }
  .fisa-head .h-title { font-size: 32px !important; line-height: 1.15 !important; margin: 4px 0; }
  .fisa-head .h-form { font-size: 18px !important; }
  .fisa-head .h-instr { font-size: 14px !important; color: #5d564c !important; margin-top: 6px; }
  .fisa-item { display: block; margin: 0 0 14px; }
  .fisa-static { margin: 18px 0 8px; padding-top: 10px; border-top: 2px solid #1e1b16; }
  .fisa-static .fisa-t { font-size: 17px !important; font-weight: 700; }
  .fisa-static.s-subsequent, .fisa .st-locked, .fisa .st-today, .fisa-view .k-form_date { display: none; }
  .fisa .fisa-f { position: relative !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; min-height: 44px; margin-top: 5px; background: #fff; border: 1px solid #cfc6b2; border-radius: 6px; }
  .fisa-f > input, .fisa-f > textarea { position: static; display: block; height: auto; min-height: 42px; font-size: 16px; padding: 9px 11px; border-radius: 6px; }
  .fisa-f > textarea { min-height: 64px; overflow: auto; }
  .fisa.js-fit .fisa-f.tx { min-height: 64px; }
  .fisa.js-fit .fisa-f.tx:has(> textarea.short) { min-height: 44px; }
  .fisa.js-fit .fisa-f.tx > textarea { position: static; min-height: 0; max-height: none; padding: 6px 11px; }
  .fisa-f > textarea.short { min-height: 42px; height: 42px; }
  .fisa-f > input.fn, .fisa-f > input.ln2 { width: 100%; }
  .fisa-f > input.fn { border-bottom: 1px dashed #e0d9c8; border-radius: 6px 6px 0 0; }
  .fisa-f .yn { position: static; flex-direction: row; justify-content: center; gap: 18px; padding: 8px 10px; font-size: 16px; }
  .fisa-f .yn span { padding: 2px 12px; border-width: 2px; }
  .fisa-sig { position: relative; height: 150px; }
  .fisa-sig .sig-hint { font-size: 15px; }
  .fisa .fisa-t.val { margin-top: 5px; padding: 9px 11px; min-height: 44px; box-sizing: border-box; background: #fff; border: 1px solid #e2dccd; border-radius: 6px; color: var(--ink); text-align: center !important; }
  .fisa .fisa-t.val.nv::before { content: "—"; color: #b6b0a2; }
  .fisa-sig-img { position: static; display: block; width: 100%; height: 120px; }
  .fisa .fisa-hidden { position: static; height: 64px; padding: 4px 0; }
  .fisa-zensur { max-width: 180px; }
  .fisa-reg { position: static !important; display: table; margin: 0 auto 10px; padding: 2px 10px; font-size: 14px !important; line-height: 1.4 !important; border-width: 2px; width: auto !important; height: auto !important; }
  .fisa-rule { position: static; min-height: 42px; font-size: 15px; border-radius: 6px; }
  .fisa-req-badge { font-size: 15px; right: 8px; bottom: 8px; }
}

/* personal data: the information notice, the declarations, what was signed */
.gdpr-box { margin: 18px 0 8px; }
.gdpr-box h3 { margin: 0 0 6px; }
.gdpr-text { max-height: 460px; overflow: auto; padding: 12px 16px; background: #fff; border: 1px solid #ddd3bd; border-radius: 6px; font-size: .92rem; line-height: 1.5; }
.gdpr-text h4 { margin: 12px 0 4px; font-size: 1rem; } .gdpr-text h4:first-child { margin-top: 0; }
.gdpr-text p { margin: 0 0 8px; } .gdpr-text ul { margin: 0 0 8px; padding-left: 20px; } .gdpr-text li { margin: 2px 0; }
.gdpr-check { margin: 10px 0 4px; align-items: flex-start; }
.gdpr-signed h3, .gdpr-signed h4 { margin: 0 0 6px; }
.gdpr-when { margin: 0 0 6px; font-weight: 600; }
.gdpr-consents { list-style: none; margin: 0 0 8px; padding: 0; }
.gdpr-consents li { margin: 4px 0; padding-left: 26px; text-indent: -26px; }
.gdpr-tick { display: inline-block; width: 22px; text-indent: 0; color: #2e8b3d; font-size: 1.1em; }
.gdpr-sig { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 6px 0 8px; }
.gdpr-sig span { font-size: .9rem; color: var(--muted, #6f685c); }
.gdpr-sig img { height: 64px; width: 336px; max-width: 100%; object-fit: contain; object-position: left center; background: #fff; border-bottom: 1px solid #333; }
.gdpr-text-d { margin-top: 6px; } .gdpr-text-d .gdpr-text { margin-top: 6px; }
.gdpr-pad { margin: 12px 0 6px; } .gdpr-pad .lbl { display: block; font-size: .9rem; margin-bottom: 4px; }
.gdpr-pad .pad { position: relative; width: 100%; max-width: 560px; aspect-ratio: 1100 / 210; background: #fff; border: 1px solid #cfc6b2; border-radius: 6px; --ink: #1f3a75; }
@media (max-width: 600px) { .gdpr-pad .pad { aspect-ratio: auto; height: 140px; } }
.gdpr-pad.err .pad { border-color: #b3261e; box-shadow: 0 0 0 2px rgba(179, 38, 30, .25); }
.gdpr-check[hidden], .fisa-errors[hidden] { display: none !important; }
.gdpr-waiver { padding: 6px 8px; border-left: 3px solid #b3261e; background: #fbf1ef; border-radius: 4px; }
/* the tables of the notice: the fields one by one, what the site shows */
.gdpr-text h5 { margin: 10px 0 4px; font-size: .95rem; }
.gdpr-tw { overflow-x: auto; margin: 4px 0 12px; }
.gdpr-table { width: 100%; border-collapse: collapse; font-size: .84rem; line-height: 1.35; }
.gdpr-table th, .gdpr-table td { border: 1px solid #ddd3bd; padding: 5px 7px; text-align: left; vertical-align: top; }
.gdpr-table thead th { background: #f1ede2; font-weight: 700; }
.gdpr-table tbody th { font-weight: 700; background: #fbfaf6; }
@media (max-width: 700px) {
  .gdpr-table thead { display: none; }
  .gdpr-table, .gdpr-table tbody, .gdpr-table tr, .gdpr-table th, .gdpr-table td { display: block; width: auto; }
  .gdpr-table tr { border: 1px solid #ddd3bd; border-radius: 6px; margin: 0 0 8px; background: #fff; }
  .gdpr-table th, .gdpr-table td { border: 0; border-top: 1px solid #efe9da; }
  .gdpr-table tbody th { border-top: 0; background: #f1ede2; border-radius: 6px 6px 0 0; }
  .gdpr-table td::before { content: attr(data-label); display: block; font-size: .78rem; color: #6f685c; font-weight: 600; }
}
.gdpr-consents li.off { color: var(--muted, #6f685c); }
.gdpr-consents li.off .gdpr-tick { color: inherit; }
.reg-stamp { display: inline-block; padding: 1px 8px; border: 2px solid #1f3a75; color: #1f3a75; font-weight: 700; white-space: nowrap; font-family: "IR61 Fisa Sans", Arial, sans-serif; }

/* the join page */
.join-top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 380px); gap: 18px 24px; align-items: start; margin: 0 0 18px; }
.join-top .fisa-intro { margin: 0; font-size: 1.05rem; line-height: 1.55; }
.join-paper h3 { margin: 0 0 6px; }
.join-paper .btn-row { margin: 8px 0; }
.join-send { margin-top: 16px; }
.join-send .check { margin: 6px 0 2px; align-items: flex-start; }
.req-star { color: #b3261e; }
.join-done h1 { margin-top: 0; }
@media (max-width: 860px) { .join-top { grid-template-columns: 1fr; } }

/* the declarations that were signed: next to each other when there is room */
.gdpr-consents { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 6px 28px; }
.gdpr-consents li { margin: 0; }

/* Admin → Applications → one application: what to do with it on top, the application below, both across the page */
.app-actions { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 18px 32px; align-items: start; }
.app-accept h3 { margin: 0 0 4px; }
.app-accept-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 18px; }
.app-accept-row .field { margin: 0; width: 240px; max-width: 100%; }
.app-accept-row .check { margin: 0 0 10px; }
.app-other { border-left: 1px solid var(--line); padding-left: 32px; }
.app-other .field { margin-bottom: 8px; }
.app-actions > .app-other:only-child { grid-column: 1 / -1; border-left: 0; padding-left: 0; }
.app-detail-top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px 32px; align-items: flex-end; }
.app-detail-top .kv { flex: 1 1 420px; }
@media (max-width: 860px) {
  .app-actions { grid-template-columns: 1fr; }
  .app-other { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 14px; }
}

/* the join page of a member: his own form, nothing to send */
.join-member input[readonly], .join-member textarea:disabled { background: #f3efe5; color: var(--muted); cursor: not-allowed; }
.join-top .fisa-intro p { margin: 0 0 8px; }
.gdpr-accepted { margin: 14px 0 6px; font-weight: 700; color: var(--green-dark); }
.gdpr-done-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 4px 28px; }
.gdpr-check.is-done { cursor: default; }
.gdpr-renew { margin: 14px 0 0; padding: 8px 12px; border-left: 3px solid var(--gold); background: var(--gold-soft); border-radius: 4px; font-weight: 600; }
/* the notice grouped: "### " a group of fields (mandatory, optional, not filled in by the applicant), "#### " one field */
.gdpr-text h5 { margin: 16px 0 4px; padding-bottom: 3px; font-size: 1rem; border-bottom: 1px solid #e6dcc4; }
.gdpr-text h6 { margin: 10px 0 2px; font-size: .9rem; font-weight: 700; font-family: "IR61 Fisa Sans", Arial, sans-serif; }
.gdpr-text h6 + p { margin-bottom: 6px; }
.gdpr-text.busy { opacity: .55; transition: opacity .15s; }
/* Admin → Join form: the e-mail address and the message below the sheet, the notes about the rules, the paragraph of the field just changed */
.fisa-extra { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 10px 0 0; }
.fisa-extra[hidden] { display: none; }
.fisa-extra .lbl { font-size: .9rem; color: var(--muted, #6f685c); }
.fisa-extra .fisa-rule.fx { position: static; display: inline-flex; gap: 8px; width: auto; height: auto; min-height: 36px; padding: 6px 12px; border: 1px solid #d8cfb9; border-radius: 6px; font: 600 .9rem/1.2 "IR61 Fisa Sans", Arial, sans-serif; }
.fisa-extra .fisa-rule.fx .ra { display: inline; padding: 0; }
.fisa-extra .fisa-rule.fx[data-apply="required"] { background: rgba(179, 38, 30, .13); color: #8a1f17; }
.fisa-extra .fisa-rule.fx[data-apply="optional"] { background: rgba(59, 110, 44, .12); color: #2d5622; }
.fisa-extra .fisa-rule.fx[data-apply="admin"] { background: repeating-linear-gradient(135deg, rgba(17, 17, 17, .07) 0 6px, rgba(17, 17, 17, .02) 6px 12px); color: #4a4a4a; }
.fisa-notes { margin: 6px 0 10px; padding: 8px 12px 8px 28px; background: #fbf6e6; border: 1px solid #ecdcae; border-radius: 6px; }
.fisa-notes li { margin: 2px 0; }
.fisa-said { margin-top: 12px; }
.fisa-said[hidden] { display: none; }
.fisa-said-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 6px; font-size: .92rem; }
.fisa-said .gdpr-text { max-height: none; border-left: 3px solid var(--gold, #b38e2c); }
.fisa-said .gdpr-text h6:first-child { margin-top: 0; }
.gdpr-preview > summary .badge { margin-left: 6px; }
.fisa-unsaved[hidden] { display: none !important; }
