.inri-functional .krd-tool-necrology .krd-tool-hero{ padding-block: clamp(32px, 4vw, 52px); }
.inri-functional .krd-tool-necrology .krd-tool-hero-grid{ margin-top: 20px; }
.inri-functional .krd-tool-necrology .krd-tool-hero h1{ font-size: clamp(33.6px, 4.3vw, 60px); }
.inri-functional .krd-tool-necrology .krd-tool-hero-intro{ margin-top: 16px; font-size: 16px; line-height: 1.65; }
.inri-functional .krd-tool-necrology .krd-tool-final-panel p a{ color: hsl(var(--gold-soft)); text-decoration: underline; text-decoration-color: hsl(var(--gold) / .6); text-underline-offset: .2em; }
.inri-functional .krd-necrology-workspace{ scroll-margin-top: 128px; }
.inri-functional .krd-necrology-workspace [hidden]{ display: none !important; }
.inri-functional .krd-necrology-workspace .krd-tool-panel{ padding: clamp(16px, 3vw, 40px); container-type: inline-size; }
.inri-functional .krd-necrology-workspace .krd-tool-panel-heading{ max-width: 816px; }
.inri-functional .krd-necrology-workspace .krd-tool-panel h2{ font-size: clamp(26.4px, 3.3vw, 40px); }
.inri-functional .krd-necrology-workspace .krd-necrology-layout{ grid-template-columns: minmax(0, 1.15fr) minmax(336px, .85fr); align-items: start; gap: clamp(22.4px, 3vw, 40px); }
.inri-functional .krd-necrology-workspace .krd-necrology-preview-panel{ position: sticky; top: 116px; order: initial; scroll-margin-top: 128px; padding: 18.4px; }
.inri-functional .krd-necrology-workspace .krd-necrology-preview-frame{ margin-top: 16px; max-width: 432px; }
.inri-functional .krd-necrology-workspace .krd-necrology-preview-frame canvas{ border-color: #8b7d5b; }
.inri-functional .krd-necrology-workspace .screen-reader-text{ position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.inri-functional .krd-necrology-workspace .krd-necrology-fieldset + .krd-necrology-fieldset{ margin-top: 28px; padding-top: 28px; }
.inri-functional .krd-necrology-workspace .krd-necrology-fieldset > legend{ font-size: 16.8px; }
.inri-functional .krd-necrology-workspace .krd-field label,.inri-functional .krd-necrology-workspace .krd-n-label{ color: hsl(var(--foreground)); font-size: 13.44px; font-weight: 600; line-height: 1.4; }
.inri-functional .krd-necrology-workspace .krd-field input,.inri-functional .krd-necrology-workspace .krd-field select,.inri-functional .krd-necrology-workspace .krd-field textarea{ width: 100%; min-width: 0; min-height: 46.4px; margin-top: 7.2px; padding: 10.4px 11.2px; border: 1px solid hsl(var(--gold) / .35); border-radius: 2.4px; background: hsl(var(--background) / .76); color: hsl(var(--foreground)); font: inherit; font-size: 13.6px; color-scheme: dark; }
.inri-functional .krd-necrology-workspace .krd-field select{ padding-right: 25.6px; }
.inri-functional .krd-necrology-workspace .krd-field select:disabled{ opacity: .5; }
.inri-functional .krd-necrology-workspace :is(input, select, textarea, button, a):focus-visible{ outline: 2px solid hsl(var(--gold-soft)); outline-offset: 3px; }
.inri-functional .krd-necrology-workspace [aria-invalid="true"]{ border-color: #e39186 !important; }
.inri-functional .krd-necrology-workspace .krd-field textarea{ min-height: 112px; resize: vertical; line-height: 1.6; }
.inri-functional .krd-necrology-workspace .krd-field-error:empty{ display: none; }
.inri-functional .krd-necrology-workspace .krd-field-error{ font-size: 12.48px; margin-bottom: 3.2px; }
.inri-functional .krd-necrology-type-list{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9.6px; margin-top: 16px; }
.inri-functional .krd-necrology-type-list label{ cursor: pointer; min-width: 0; }
.inri-functional .krd-necrology-type-list label span{ display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 9.6px 8px; border: 1px solid hsl(var(--gold) / .28); background: hsl(var(--background) / .55); color: hsl(var(--muted-foreground)); font-size: 13.6px; text-align: center; line-height: 1.4; }
.inri-functional .krd-necrology-type-list input,.inri-functional .krd-necrology-frame-list input{ position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
.inri-functional .krd-necrology-type-list input:checked + span{ color: hsl(var(--gold-soft)); border-color: hsl(var(--gold) / .85); background: hsl(var(--gold) / .09); }
.inri-functional .krd-necrology-type-list input:focus-visible + span,.inri-functional .krd-necrology-frame-list input:focus-visible + span{ outline: 2px solid hsl(var(--gold-soft)); outline-offset: 3px; }
.inri-functional .krd-necrology-symbol-fields{ display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 12.8px; margin-top: 16px; }
.inri-functional .krd-necrology-frame-label{ margin-top: 20px; }
.inri-functional .krd-necrology-frame-list{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13.6px 11.2px; margin-top: 11.2px; }
.inri-functional .krd-necrology-frame-list label{ display: grid; align-content: start; gap: 8px; min-width: 0; cursor: pointer; }
.inri-functional .krd-necrology-frame-swatch{ position: relative; display: block; padding: 6.4px; border: 1px solid hsl(var(--gold) / .25); background: hsl(var(--background)); }
.inri-functional .krd-necrology-frame-swatch canvas{ display: block; width: 100%; height: auto; max-height: 144px; object-fit: contain; }
.inri-functional .krd-necrology-frame-list input:checked + .krd-necrology-frame-swatch{ border-color: hsl(var(--gold)); background: hsl(var(--gold) / .09); box-shadow: 0 0 0 1px hsl(var(--gold) / .35); }
.inri-functional .krd-necrology-frame-tick{ position: absolute; right: 2.4px; bottom: 2.4px; display: none; width: 22.4px; height: 22.4px; background: hsl(var(--gold)); color: #181713; font-size: 12.8px; text-align: center; line-height: 22.4px; }
.inri-functional .krd-necrology-frame-list input:checked + span .krd-necrology-frame-tick{ display: block; }
.inri-functional .krd-necrology-frame-name{ display: block; color: hsl(var(--muted-foreground)); font-size: 11.2px; line-height: 1.4; text-align: center; }
.inri-functional .krd-necrology-frame-list label:has(input:checked) .krd-necrology-frame-name{ color: hsl(var(--gold-soft)); }
.inri-functional .krd-necrology-person{ min-width: 0; margin: 17.6px 0 0; padding: 16px; border: 1px solid hsl(var(--gold) / .2); background: hsl(var(--background) / .25); }
.inri-functional .krd-necrology-person > legend{ padding-inline: 4.8px; color: hsl(var(--gold-soft)); font-size: 12.16px; }
.inri-functional .krd-necrology-person-fields{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10.4px; }
.inri-functional .krd-necrology-person > .krd-field{ margin-top: 13.6px; max-width: 192px; }
.inri-functional .krd-necrology-workspace .krd-necrology-photo-field{ margin-top: 16px; padding: 12.8px; }
.inri-functional .krd-necrology-workspace .krd-necrology-photo-field > label{ font-size: 13.6px; }
.inri-functional .krd-necrology-workspace .krd-necrology-photo-field > input[type="file"]{ font-size: 12.16px; padding: 6.4px; min-height: 44.8px; }
.inri-functional .krd-necrology-workspace .krd-necrology-photo-adjustments{ margin-top: 11.2px; }
.inri-functional .krd-necrology-checkbox{ display: flex !important; align-items: center; gap: 8.8px; margin-top: 16px; color: hsl(var(--foreground)); font-size: 13.44px; line-height: 1.5; cursor: pointer; }
.inri-functional .krd-necrology-checkbox input{ width: 17.6px; height: 17.6px; min-width: 17.6px; margin: 0; accent-color: hsl(var(--gold)); }
.inri-functional .krd-necrology-text-button,.inri-functional .krd-necrology-period-presets button{ min-height: 44px; padding: 8px 10.4px; border: 1px solid hsl(var(--gold) / .35); background: transparent; color: hsl(var(--gold-soft)); font: inherit; font-size: 12.16px; cursor: pointer; }
.inri-functional .krd-necrology-period-presets{ display: flex; flex-wrap: wrap; gap: 6.4px; margin-top: 9.6px; }
.inri-functional .krd-necrology-date{ margin-top: 16px; }
.inri-functional .krd-necrology-date-inputs{ display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.5fr) minmax(0, 1fr); gap: 8px; }
.inri-functional .krd-necrology-period,.inri-functional .krd-necrology-death-date{ margin-top: 16px; }
.inri-functional .krd-necrology-message-field{ margin-block: 20px; }
.inri-functional .krd-necrology-message-field > label:not(:first-child){ margin-top: 16px; }
.inri-functional .krd-necrology-custom-from{ margin-top: 12.8px; }
.inri-functional .krd-necrology-ceremony-fields > .krd-field{ margin-top: 16px; }
.inri-functional .krd-necrology-export-actions{ display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 16px; }
.inri-functional .krd-necrology-export-actions button{ min-width: 0; min-height: 46.4px; padding: 10.4px 6.4px; font-size: 13.12px; }
.inri-functional .krd-necrology-export-actions button:first-child{ grid-column: 1 / -1; }
.inri-functional .krd-necrology-export-actions button:disabled{ opacity: .48; cursor: not-allowed; }
.inri-functional .krd-necrology-export-note{ text-align: center; font-size: 11.2px; }
.inri-functional .krd-necrology-preview-link{ display: none; }
.inri-functional .krd-necrology-workspace .krd-necrology-status{ min-height: 38.4px; font-size: 12.16px; line-height: 1.55; }
.inri-functional .krd-necrology-print-frame{ position: fixed; bottom: 0; left: 0; width: 1px; height: 1px; opacity: 0; pointer-events: none; border: 0; }
@media (min-width: 1100px){.inri-functional .krd-necrology-workspace .krd-necrology-preview-panel{ max-height: calc(100vh - 132px); overflow-y: auto; scrollbar-width: thin; }
.inri-functional .krd-necrology-workspace .krd-necrology-preview-frame canvas{ width: auto; max-width: 100%; max-height: max(256px, calc(100vh - 448px)); margin-inline: auto; }
.inri-functional .krd-necrology-export-actions{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.inri-functional .krd-necrology-export-actions button:first-child{ grid-column: auto; }

}
@container (max-width: 800px){.inri-functional .krd-necrology-workspace .krd-necrology-layout{ grid-template-columns: minmax(0, 1fr); }
.inri-functional .krd-necrology-workspace .krd-necrology-preview-panel{ position: static; max-height: none; overflow: visible; }
.inri-functional .krd-necrology-workspace .krd-necrology-preview-frame canvas{ width: 100%; max-height: none; }
.inri-functional .krd-necrology-preview-link{ display: inline-flex; align-items: center; gap: 8px; }
.inri-functional .krd-necrology-workspace .krd-necrology-actions{ grid-template-columns: 1fr 1fr; }

}
@media (max-width: 1099px){.inri-functional .krd-necrology-workspace .krd-necrology-layout{ grid-template-columns: minmax(0, 1fr); }
.inri-functional .krd-necrology-workspace .krd-necrology-preview-panel{ position: static; order: initial; }
.inri-functional .krd-necrology-preview-link{ display: inline-flex; gap: 8px; align-items: center; margin-top: 12px; color: hsl(var(--gold-soft)); font-size: 13.6px; text-decoration: underline; text-underline-offset: 3.2px; }
.inri-functional .krd-necrology-actions .krd-necrology-preview-link{ margin: 0; text-decoration: none; }
.inri-functional .krd-necrology-workspace .krd-necrology-actions{ grid-template-columns: 1fr 1fr; }
.inri-functional .krd-necrology-frame-swatch canvas{ max-height: 176px; }

}
@media (max-width: 479px){.inri-functional .krd-necrology-person{ padding: 12px; }
.inri-functional .krd-necrology-person-fields{ grid-template-columns: 1fr; gap: 12px; }
.inri-functional .krd-necrology-symbol-fields{ grid-template-columns: 1fr; }
.inri-functional .krd-necrology-date-inputs{ grid-template-columns: minmax(0, .8fr) minmax(0, 1.3fr) minmax(0, 1fr); gap: 4.8px; }
.inri-functional .krd-necrology-workspace .krd-necrology-date select{ padding-inline: 5.6px; font-size: 12.16px; }
.inri-functional .krd-necrology-frame-list{ gap: 10.4px 6.4px; }
.inri-functional .krd-necrology-frame-swatch{ padding: 3.2px; }
.inri-functional .krd-necrology-workspace .krd-necrology-preview-panel{ padding: 13.6px; }

}
@media (prefers-reduced-motion: reduce){.inri-functional .krd-necrology-workspace *{ scroll-behavior: auto !important; }
 }

