:root { font-family: "Segoe UI", Arial, sans-serif; color: #302c31; background: #f1f3f2; --primary:#643182; --primary-dark:#64276a; --sage:#486a5f; --gold:#b8862d; --line:#d9dddb; --muted:#716b73; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; }
button,input,select,textarea { font: inherit; letter-spacing: 0; }
button { cursor: pointer; }
.portal-header { height: 68px; display: flex; align-items: center; justify-content: space-between; padding: 0 max(24px,calc((100vw - 1120px)/2)); border-bottom: 1px solid var(--line); background: #fff; }
.portal-brand { display: flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; }
.portal-brand img { width: 38px; height: 38px; }
.portal-brand strong,.portal-brand small { display: block; }
.portal-brand strong { font-size: 15px; }
.portal-brand small { margin-top: 2px; color: var(--muted); font-size: 10px; }
#portal-security { color: var(--sage); font-size: 11px; }
main { width: min(1120px,calc(100% - 36px)); flex: 1; margin: 0 auto; padding: 30px 0 60px; }
.portal-loading,.portal-error { padding: 100px 20px; text-align: center; color: var(--muted); }
.portal-error h1 { color: #392f3b; font-family: Georgia,serif; font-size: 32px; font-weight: 400; }
.portal-error .button { display: inline-flex; margin-top: 16px; text-decoration: none; }
.button { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; padding: 0 15px; border: 1px solid #bdc8c6; border-radius: 4px; background: #fff; color: #344744; font-weight: 650; text-decoration: none; }
.button:hover { background: #f5f7f6; }
.button.primary { border-color: var(--primary); background: var(--primary); color: #fff; }
.button.primary:hover { background: var(--primary-dark); }
.button:disabled { cursor: wait; opacity: .65; }
.full-button { width: 100%; }
.search-intro { min-height: 315px; display: flex; align-items: center; flex-direction: column; justify-content: center; padding: 42px 24px; border-bottom: 5px solid var(--gold); background: #3b323d url('/assets/memorial-dandelions-v2.png') no-repeat calc(50% + 430px) 48%/235px auto; color: #fff; text-align: center; }
.search-intro > span,.portal-eyebrow,.portal-section > header > span,.section-heading > div > span,.memory-quote > span { color: #e6c783; font-size: 10px; font-weight: 700; text-transform: uppercase; }
.search-intro h1 { margin: 12px 0 8px; font-family: Georgia,serif; font-size: 46px; font-weight: 400; }
.search-intro > p { max-width: 650px; margin: 0; color: #e4e0e5; font-size: 13px; line-height: 1.65; }
.memorial-search { width: min(650px,100%); display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: 28px; }
.memorial-search input { min-width: 0; min-height: 46px; padding: 0 14px; border: 1px solid #dad5db; border-radius: 4px; background: #fff; outline: none; }
.memorial-search .button { min-height: 46px; padding: 0 24px; }
.search-results { width: min(860px,100%); margin: 28px auto 0; }
.search-results > header { display: flex; align-items: baseline; justify-content: space-between; padding: 0 2px 12px; }
.search-results h2 { margin: 0; font-family: Georgia,serif; font-size: 23px; font-weight: 400; }
.search-results > header span { color: var(--muted); font-size: 10px; }
.search-results > div { border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.memorial-result { min-height: 112px; display: grid; grid-template-columns: 76px minmax(0,1fr) 24px; align-items: center; gap: 18px; padding: 14px 18px; border-bottom: 1px solid #e4e7e5; color: inherit; text-decoration: none; }
.memorial-result:last-child { border-bottom: 0; }
.memorial-result:hover { background: #faf8fa; }
.memorial-result-portrait { width: 76px; height: 76px; display: grid; place-items: center; overflow: hidden; border: 1px solid #d7d0d8; border-radius: 50%; background: #eee8ef; color: var(--primary); font-family: Georgia,serif; font-size: 22px; }
.memorial-result-portrait img { width: 100%; height: 100%; object-fit: cover; transform-origin:center; }
.memorial-result > span:nth-child(2) > * { display: block; }
.memorial-result strong { font-family: Georgia,serif; font-size: 20px; font-weight: 400; }
.memorial-result .memorial-result-birth-name { margin-top: 3px; color: #736a74; font-family: Georgia,serif; font-size: 12px; font-style: italic; }
.memorial-result small { margin-top: 5px; color: #5f585f; font-size: 11px; }
.memorial-result em { margin-top: 8px; color: var(--sage); font-size: 9px; font-style: normal; font-weight: 700; text-transform: uppercase; }
.result-arrow { color: var(--primary); font-size: 29px; }
.search-empty { padding: 46px 20px; text-align: center; }
.search-empty.compact { padding: 28px 12px; }
.search-empty strong { display: block; font-family: Georgia,serif; font-size: 18px; font-weight: 400; }
.search-empty p { margin: 7px 0 0; color: var(--muted); font-size: 11px; }
.memorial-hero { position: relative; min-height: 335px; display: grid; grid-template-columns: 240px minmax(0,1fr); align-items: center; gap: 42px; overflow: hidden; padding: 40px 48px; border-bottom: 5px solid var(--gold); background: #3b323d; color: #fff; }
.memorial-portrait { position: relative; z-index: 1; width: 220px; height: 255px; display: grid; place-items: center; overflow: hidden; border: 5px solid #fff; border-radius: 4px; background: #e9e5e9; box-shadow: 0 16px 38px rgba(0,0,0,.25); color: var(--primary); font-family: Georgia,serif; font-size: 48px; }
.memorial-portrait img { width: 100%; height: 100%; object-fit: cover; transform-origin:center; }
.memorial-hero > div:nth-child(2) { position: relative; z-index: 2; }
.back-link { display: block; margin-bottom: 30px; color: #ddd4df; font-size: 10px; text-decoration: none; }
.memorial-hero h1 { margin: 12px 0 7px; font-family: Georgia,serif; font-size: 43px; font-weight: 400; }
.memorial-hero p { margin: 0; color: #e5dfe6; font-size: 16px; }
.memorial-hero > div > strong { display: block; margin-top: 9px; color: #dfc47f; font-size: 12px; }
.memorial-hero-flower { position: absolute; right: -45px; bottom: -170px; width: 360px; opacity: .35; pointer-events: none; }
.memorial-layout { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(300px,.72fr); align-items: start; gap: 18px; margin-top: 18px; }
.portal-section { margin-bottom: 18px; padding: 24px; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.portal-section h2 { margin: 5px 0 0; font-family: Georgia,serif; font-size: 22px; font-weight: 400; }
.portal-section > p { margin: 10px 0 20px; color: var(--muted); font-size: 11px; line-height: 1.55; }
.memory-quote { min-height: 185px; display: grid; place-items: center; align-content: center; margin-bottom: 18px; padding: 32px 50px; border-left: 4px solid var(--primary); background: #f6f2f6; text-align: center; }
.memory-quote blockquote { max-width: 650px; margin: 16px 0 0; color: #4b414c; font-family: Georgia,serif; font-size: 24px; font-style: italic; line-height: 1.55; }
.ceremony-list { display: grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:20px; }
.ceremony-list article { min-width:0; display:grid; grid-template-columns:42px minmax(0,1fr); gap:13px; padding:17px; border:1px solid var(--line); border-radius:6px; background:#fcfafc; }
.ceremony-calendar { width:40px; height:40px; display:grid; place-items:center; border:1px solid #d4b97b; border-radius:50%; color:#a47e30; }
.ceremony-calendar svg { width:18px; height:18px; }
.ceremony-list article > div > * { display:block; }
.ceremony-list article > div > span { color:var(--primary); font-size:9px; font-weight:800; text-transform:uppercase; }
.ceremony-list article > div > strong { margin-top:5px; color:#312936; font-family:Georgia,serif; font-size:20px; font-weight:500; }
.ceremony-list article > div > time { margin-top:2px; color:#475459; font-size:12px; font-weight:700; }
.ceremony-list article > div > b { margin-top:13px; color:#344246; font-size:12px; }
.ceremony-list article > div > small { display:flex; align-items:flex-start; gap:6px; margin-top:5px; color:var(--muted); font-size:11px; line-height:1.45; }
.ceremony-list article > div > small svg { width:13px; height:13px; flex:0 0 auto; margin-top:1px; color:#a47e30; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.memorial-counts { display: flex; gap: 7px; }
.memorial-counts > span { min-width: 54px; display: flex; align-items: center; gap: 5px; padding: 4px 8px; border: 1px solid #ded8df; border-radius: 3px; color: #5b525c; font-size: 10px; }
.memorial-counts img { width: 21px; height: 26px; object-fit: contain; }
.memorial-entry-list { margin-top: 16px; border-top: 1px solid var(--line); }
.memorial-entry { display: grid; grid-template-columns: 74px minmax(0,1fr); gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.memorial-entry > .memorial-symbol-visual { width: 68px; height: 68px; align-self: start; }
.memorial-entry header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.memorial-entry header strong { font-size: 12px; }
.memorial-entry time { color: var(--muted); font-size: 9px; }
.memorial-entry p { margin: 8px 0 0; font-family: Georgia,serif; font-size: 14px; line-height: 1.55; }
.memorial-entry small { display: block; margin-top: 8px; color: var(--sage); font-size: 8px; font-weight: 700; text-transform: uppercase; }
.symbol-choice-groups { display: grid; gap: 22px; margin: 20px 0 24px; }
.symbol-choice-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.symbol-choice-group legend { margin-bottom: 10px; color: #536363; font-size: 11px; font-weight: 700; text-transform: uppercase; }
.symbol-choice { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.symbol-choice input { position: absolute; opacity: 0; }
.symbol-choice label { min-width: 0; }
.symbol-choice label > span { min-width: 0; min-height: 154px; display: grid; grid-template-rows:auto minmax(32px,auto); place-items: center; align-content: start; gap: 9px; padding: 7px 7px 10px; overflow: hidden; border: 1px solid var(--line); border-radius: 5px; background: #fafbfa; text-align: center; cursor: pointer; transition: border-color .16s ease,background .16s ease,box-shadow .16s ease; }
.symbol-choice label > span:hover { border-color: #bca8be; background: #fff; }
.symbol-choice strong { min-width: 0; max-width: 100%; align-self: center; overflow-wrap: anywhere; color: #342e35; font-size: 11px; line-height: 1.3; }
.symbol-choice input:checked + span { border-color: var(--primary); background: #f7f1f8; box-shadow: inset 0 0 0 2px var(--primary); }
.symbol-choice input:focus-visible + span { outline: 2px solid rgba(128,52,137,.32); outline-offset: 2px; }
.memorial-symbol-visual { width: 100%; max-width: 132px; aspect-ratio: 1; display: block; border-radius: 3px; background-repeat: no-repeat; background-size: 200% 200%; box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
.memorial-symbol-visual.sprite-candle { background-image: url('/assets/memorial-candle-options.png'); }
.memorial-symbol-visual.sprite-flower { background-image: url('/assets/memorial-flower-options-v2.png'); }
.memorial-symbol-visual.top-left { background-position: 0 0; }
.memorial-symbol-visual.top-right { background-position: 100% 0; }
.memorial-symbol-visual.bottom-left { background-position: 0 100%; }
.memorial-symbol-visual.bottom-right { background-position: 100% 100%; }
.memories-section > .search-empty { margin-top: 15px; }
.memory-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 16px; }
.memory-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 4px; background: #fff; }
.memory-card > button { width: 100%; height: 210px; display: block; padding: 0; overflow: hidden; border: 0; background: #2f2931; cursor: zoom-in; }
.memory-card > button img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .2s ease; }
.memory-card > button:hover img { transform: scale(1.025); }
.memory-card > div { padding: 14px; }
.memory-card span { color: var(--sage); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.memory-card h3 { margin: 5px 0 0; color: #3b333c; font-family: Georgia,serif; font-size: 18px; font-weight: 500; }
.memory-card p { margin: 9px 0 0; color: #545056; font-size: 11px; line-height: 1.55; white-space: pre-line; }
.memory-card time { display: block; margin-top: 10px; color: var(--muted); font-size: 9px; }
.memory-upload { display: block; margin-top: 15px; cursor: pointer; }
.memory-upload > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.memory-upload-preview { min-height: 150px; display: grid; place-items: center; align-content: center; gap: 5px; overflow: hidden; padding: 12px; border: 1px dashed #b9adb9; border-radius: 4px; background: #faf7fa; color: #544b55; text-align: center; }
.memory-upload-preview > small { color: var(--muted); font-size: 9px; }
.memory-upload-preview > img { width: 100%; height: 150px; display: block; object-fit: cover; }
.memory-upload-preview > img + span { width: 100%; display: grid; gap: 3px; padding-top: 4px; text-align: left; }
.memory-upload:focus-within .memory-upload-preview { border-color: var(--primary); box-shadow: 0 0 0 2px rgba(128,52,137,.11); }
.memory-dialog { width: min(900px,calc(100% - 32px)); max-height: calc(100vh - 32px); padding: 0; overflow: auto; border: 0; border-radius: 5px; background: #fff; box-shadow: 0 26px 70px rgba(25,20,26,.34); }
.memory-dialog::backdrop { background: rgba(24,20,25,.72); }
.memory-dialog > div { min-width: 0; }
.memory-dialog header { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 18px; border-bottom: 1px solid var(--line); }
.memory-dialog header span { color: var(--sage); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.memory-dialog h2 { margin: 4px 0 0; font-family: Georgia,serif; font-size: 22px; font-weight: 500; }
.memory-dialog .dialog-close { width: 34px; height: 34px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 3px; background: #fff; color: #4d454e; font-size: 24px; line-height: 1; }
.memory-dialog > div > img { width: 100%; max-height: min(66vh,700px); display: block; object-fit: contain; background: #2f2931; }
.memory-dialog > div > p { margin: 0; padding: 18px; color: #514b52; font-family: Georgia,serif; font-size: 15px; line-height: 1.6; white-space: pre-line; }
.field { margin-top: 12px; }
.field.full { grid-column: 1/-1; }
.field label { display: block; margin-bottom: 5px; color: #536363; font-size: 9px; font-weight: 700; text-transform: uppercase; }
.field input,.field select,.field textarea { width: 100%; min-height: 38px; padding: 8px 10px; border: 1px solid #c8d2d0; border-radius: 3px; background: #fff; outline: none; }
.field textarea { min-height: 100px; resize: vertical; }
.field input:focus,.field select:focus,.field textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 2px rgba(128,52,137,.11); }
.honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
.condolence-form-section .full-button { margin-top: 14px; }
.qr-code { width: 180px; height: 180px; display: block; margin: 18px auto 10px; image-rendering: pixelated; }
.share-section > p { text-align: center; }
.share-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.tribute-preview { min-height: 190px; display: grid; place-items: center; align-content: center; overflow: hidden; margin: 18px 0 12px; padding: 18px; border-bottom: 4px solid var(--gold); background: #3b323d; color: #fff; text-align: center; }
.tribute-preview > img { width: 92px; height: 100px; object-fit: cover; border: 3px solid #fff; }
.tribute-preview > span { width: 76px; height: 76px; display: grid; place-items: center; border: 1px solid #d6bfd9; border-radius: 50%; color: #e5c881; font-family: Georgia,serif; font-size: 24px; }
.tribute-preview strong,.tribute-preview small { display: block; }
.tribute-preview strong { margin-top: 12px; font-family: Georgia,serif; font-size: 16px; font-weight: 400; }
.tribute-preview small { margin-top: 4px; color: #ddd5de; font-size: 9px; }
.tribute-preview .tribute-generated { width:100%; height:auto; max-height:440px; border:0; object-fit:contain; }
.tribute-dialog { width:min(920px,calc(100% - 32px)); max-width:none; max-height:calc(100vh - 32px); padding:0; overflow:hidden; border:0; border-radius:6px; background:#fff; color:var(--charcoal); box-shadow:0 24px 70px rgba(31,24,32,.32); }
.tribute-dialog::backdrop { background:rgba(34,28,35,.72); backdrop-filter:blur(3px); }
.tribute-dialog-shell { max-height:calc(100vh - 32px); display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.tribute-dialog-shell > header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 22px; border-bottom:1px solid var(--line); }
.tribute-dialog-shell > header span { color:var(--primary); font-size:9px; font-weight:700; text-transform:uppercase; }
.tribute-dialog-shell > header h2 { margin:4px 0 0; font-family:Georgia,serif; font-size:22px; font-weight:400; }
.tribute-dialog-close { width:38px; height:38px; display:grid; place-items:center; flex:0 0 auto; padding:0; border:1px solid #d5ced6; border-radius:4px; background:#fff; color:#544b55; font-size:25px; line-height:1; }
.tribute-dialog-close:hover { background:#f6f3f6; }
.tribute-dialog-canvas { min-height:0; overflow:auto; padding:20px; background:#eceeed; text-align:center; }
.tribute-dialog-canvas img { width:auto; max-width:100%; height:auto; max-height:calc(100vh - 215px); display:block; margin:auto; box-shadow:0 10px 34px rgba(47,41,49,.18); }
.tribute-dialog-shell > footer { min-height:70px; display:flex; align-items:center; justify-content:flex-end; gap:8px; padding:14px 22px; background:#fff; color:inherit; }
.tribute-dialog-shell > footer > small { margin-right:auto; color:#706870; font-size:11px; }
.tribute-download-actions { display:flex; gap:8px; }
.hero-rotation-layer { position:absolute; z-index:0; inset:0; overflow:hidden; pointer-events:none; }
.hero-rotation-layer img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; opacity:0; transform:scale(1.015); transition:opacity 1.5s ease,transform 9s ease; }
.hero-rotation-layer img.active { opacity:1; transform:scale(1); }
.portal-hero { min-height: 184px; display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; padding: 34px 38px; border-bottom: 5px solid var(--gold); background: var(--primary); color: #fff; }
.portal-hero h1 { margin: 9px 0 6px; font-family: Georgia,serif; font-size: 36px; font-weight: 400; }
.portal-hero .portal-birth-name { display:block; margin:-1px 0 7px; color:#dfd1e1; font-family:Georgia,serif; font-size:14px; font-style:italic; }
.portal-hero p { margin: 0; color: #ecdfee; }
.portal-mark { width: 74px; height: 74px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; color: #f0cf86; font-family: Georgia,serif; font-size: 25px; }
.portal-content { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(280px,.75fr); gap: 18px; margin-top: 18px; align-items: start; }
.portal-content > * { min-width:0; }
.draft-preview { min-height: 285px; position:relative; display: grid; place-items: center; padding: 38px; border: 1px solid #cfcfc8; background: #f8f7f3; text-align: center; }
.draft-preview h3 { margin: 0 0 22px; font-family: Georgia,serif; font-size: 27px; font-weight: 400; }
.draft-preview p { line-height: 1.8; white-space: pre-wrap; }
.draft-preview-toolbar { min-height:42px; display:flex; align-items:center; justify-content:space-between; gap:12px; margin:14px 0 8px; color:#756d76; font-size:11px; }
.draft-preview-toolbar .button { min-height:36px; background:#fff; color:var(--primary); }
.draft-preview-toolbar .portal-action-icon { width:16px; height:16px; }
.draft-preview-clickable { cursor:zoom-in; transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease; }
.draft-preview-clickable:hover { border-color:#a883ad; box-shadow:0 14px 32px rgba(76,50,80,.13); transform:translateY(-1px); }
.draft-preview-clickable:focus-visible { outline:3px solid rgba(128,52,137,.28); outline-offset:3px; }
.draft-preview-zoom { position:absolute; z-index:12; right:14px; bottom:14px; display:inline-flex; align-items:center; gap:7px; padding:8px 10px; border-radius:4px; background:rgba(54,43,56,.92); color:#fff; font-size:10px; opacity:0; transform:translateY(4px); transition:opacity .18s ease,transform .18s ease; pointer-events:none; }
.draft-preview-zoom .portal-action-icon { width:15px; height:15px; }
.draft-preview-clickable:hover .draft-preview-zoom,.draft-preview-clickable:focus-visible .draft-preview-zoom { opacity:1; transform:translateY(0); }
.draft-meta { display: flex; justify-content: space-between; margin-top: 10px; color: var(--muted); font-size: 10px; }
.family-print-editor[hidden] { display:none; }
.family-print-editor-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,.72fr); gap:26px; margin-bottom:24px; padding-bottom:20px; border-bottom:1px solid var(--line); }
.family-print-editor-heading span,.family-print-preview-stage > span { color:var(--primary); font-size:11px; font-weight:700; text-transform:uppercase; }
.family-print-editor-heading h2 { margin:6px 0 0; }
.family-print-editor-heading p { margin:0; color:var(--muted); font-size:13px; line-height:1.6; }
.family-print-layout { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(285px,.82fr); align-items:start; gap:26px; }
.family-print-controls { min-width:0; }
.family-print-controls .field > label { font-size:11px; }
.family-print-controls .field input,.family-print-controls .field select,.family-print-controls .field textarea { font-size:14px; }
.family-print-motifs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.family-print-motifs label { min-width:0; position:relative; cursor:pointer; }
.family-print-motifs input { width:1px; height:1px; position:absolute; top:0; left:0; opacity:0; cursor:pointer; }
.family-print-motifs label > span { min-height:118px; display:grid; grid-template-rows:72px auto auto; overflow:hidden; border:1px solid #d8d1d9; border-radius:4px; background:#fff; color:#554d56; }
.family-print-motifs label > span > i { display:grid; place-items:center; background-color:#f4f1f3; background-repeat:no-repeat; font-size:11px; font-style:normal; }
.family-print-motifs .motif-line span { width:70%; height:1px; display:block; position:relative; background:var(--primary); }
.family-print-motifs .motif-line span::after { content:""; width:7px; height:7px; position:absolute; top:-3px; left:calc(50% - 3px); border:1px solid var(--primary); border-radius:50%; background:#f4f1f3; }
.family-print-motifs label > span > b { min-width:0; overflow:hidden; padding:8px; font-size:11px; font-weight:650; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
.family-print-motifs label > span > small { padding:0 7px 8px; color:#847b84; font-size:10px; text-align:center; }
.family-print-motifs input:checked + span { border-color:var(--primary); box-shadow:0 0 0 2px rgba(128,52,137,.14); }
.family-print-motifs input:focus-visible + span { outline:2px solid var(--primary); outline-offset:2px; }
.family-print-verse-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.family-print-verse-row .button { min-height:38px; }
.family-print-preview-stage { position:sticky; top:18px; min-width:0; padding:18px; border:1px solid #d8d2d8; border-radius:5px; background:#f2f0f1; }
.family-print-preview-stage > span { display:block; margin-bottom:12px; }
.family-print-preview-stage > small { display:block; margin-top:11px; color:#766f77; font-size:10px; line-height:1.45; }
.family-print-preview-stage .family-print-copy { justify-content:flex-start; padding:10px 9px; }
.family-print-preview-stage .family-print-label { font-size:6px; }
.family-print-preview-stage .family-print-copy h3 { margin:4px 0 5px; font-size:12px; }
.family-print-preview-stage .family-print-copy > strong { font-size:9px; }
.family-print-preview-stage .family-print-copy > small { margin-top:1px; font-size:6px; }
.family-print-preview-stage .family-print-copy blockquote { margin-top:5px; font-size:7px; line-height:1.25; }
.family-print-preview-stage .family-print-body { margin-top:5px; font-size:6px; line-height:1.25; }
.family-print-preview-stage .family-print-ceremony { margin-top:5px; padding-top:4px; font-size:6px; line-height:1.2; }
.family-print-preview-stage .family-print-footer { margin-top:4px; font-size:6px; }
.family-print-sheet { width:100%; position:relative; isolation:isolate; container-type:inline-size; overflow:hidden; border:1px solid #c9c2c8; background:#fbfaf7; box-shadow:0 10px 26px rgba(45,37,46,.14); color:#3f3741; }
.family-print-proof { display:contents; }
.family-print-proof .family-print-sheet::before {
  content:"Korrekturabzug - Bestattungshaus Baumann";
  position:absolute;
  top:50%;
  left:50%;
  width:96%;
  transform:translate(-50%,-50%) rotate(-18deg);
  z-index:1001;
  color:rgba(105,62,118,.28);
  font:600 4.1cqw/1.2 Arial,sans-serif;
  letter-spacing:0;
  text-align:center;
  white-space:nowrap;
  pointer-events:none;
  user-select:none;
}
.family-print-motif { position:absolute; inset:0; z-index:-1; background-repeat:no-repeat; opacity:.28; }
.family-print-sheet.folded.outside .family-print-motif { left:50%; }
.family-print-line-motif { width:34%; height:1px; position:absolute; z-index:1; top:22%; left:58%; background:var(--print-accent); opacity:.55; }
.family-print-sheet::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(251,250,247,.66),rgba(251,250,247,.9)); }
.family-print-fold { width:1px; position:absolute; z-index:2; top:0; bottom:0; left:50%; border-left:1px dashed rgba(90,78,91,.35); }
.family-print-copy { height:100%; display:flex; align-items:center; flex-direction:column; justify-content:center; overflow:hidden; padding:20px; text-align:center; }
.family-print-sheet.folded .family-print-copy { width:50%; margin-left:50%; padding:16px; }
.family-print-label { color:var(--print-accent); font-size:8px; font-weight:700; text-transform:uppercase; }
.family-print-copy h3 { margin:8px 0 11px; color:var(--print-accent); font-family:Georgia,serif; font-size:19px; font-weight:400; line-height:1.18; }
.family-print-copy > strong { font-family:Georgia,serif; font-size:15px; font-weight:400; }
.family-print-copy > small { margin-top:3px; color:#756d76; font-size:8px; }
.family-print-copy blockquote { max-width:94%; margin:12px auto 0; color:#514953; font-family:Georgia,serif; font-size:10px; font-style:italic; line-height:1.45; }
.family-print-body { max-width:94%; margin-top:10px; font-size:9px; line-height:1.45; }
.family-print-body p { margin:0 0 5px; font-size:inherit; line-height:inherit; }
.family-print-body ul,.family-print-body ol { margin:5px 0; padding-left:1.5em; text-align:left; }
.family-print-body li { margin:2px 0; }
.family-print-ceremony { max-width:94%; margin:10px 0 0; padding-top:8px; border-top:1px solid color-mix(in srgb,var(--print-accent) 28%,transparent); font-size:8px; line-height:1.4; }
.family-print-footer { margin:9px 0 0; color:var(--print-accent); font-family:Georgia,serif; font-size:9px; }
.draft-preview .family-print-sheet { width:min(650px,100%); }
.draft-preview .family-print-copy { padding:28px; }
.draft-preview .family-print-sheet.folded .family-print-copy { padding:24px; }
.draft-preview .family-print-copy h3 { font-size:25px; }
.draft-preview .family-print-copy > strong { font-size:19px; }
.draft-preview .family-print-copy blockquote { font-size:13px; }
.draft-preview .family-print-body { font-size:11px; }
.draft-preview .family-print-ceremony,.draft-preview .family-print-footer { font-size:10px; }
.family-print-document { width:100%; display:grid; gap:22px; justify-items:center; }
.family-print-document-page { width:100%; display:grid; justify-items:center; gap:7px; }
.family-print-page-label { width:min(760px,100%); min-height:36px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:4px 14px; padding:7px 10px; border-left:3px solid var(--primary); border-radius:3px; background:#f4edf5; color:#766f77; box-sizing:border-box; }
.family-print-page-label strong { color:var(--primary); font-size:12px; }
.family-print-page-label span { font-size:11px; font-weight:600; }
.family-print-panel { width:40%; position:absolute; z-index:2; top:8%; bottom:8%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.family-print-back,.family-print-inside-left { left:5%; }
.family-print-inside-right { right:5%; }
.family-print-back .family-print-footer { margin-top:auto; }
.family-print-inside-left blockquote { max-width:90%; color:#514953; font-family:Georgia,serif; font-size:10px; font-style:italic; line-height:1.45; }
.family-print-sheet.inside .family-print-motif { right:50%; }
.family-print-sheet [contenteditable="true"] { min-width:30px; min-height:1.25em; border-radius:3px; outline:1px dashed transparent; cursor:text; }
.family-print-sheet [contenteditable="true"]:hover { outline-color:rgba(128,52,137,.42); background:rgba(255,255,255,.44); }
.family-print-sheet [contenteditable="true"]:focus { outline:2px solid var(--primary); outline-offset:3px; background:rgba(255,255,255,.78); }
.family-print-sheet [contenteditable="true"][data-family-print-slot="body"]:empty::before,.family-print-sheet [contenteditable="true"][data-family-print-slot="quote"]:empty::before,.family-print-sheet [contenteditable="true"][data-family-print-slot="ceremonyText"]:empty::before { content:"Text eingeben"; color:#8a828a; font-style:italic; }
.family-layout-element { position:absolute; z-index:5; min-width:3%; min-height:2%; display:flex; align-items:center; justify-content:center; overflow:hidden; color:#3f3741; font-size:2cqi; line-height:1.35; text-align:center; }
.family-layout-content { width:100%; max-height:100%; overflow:hidden; overflow-wrap:anywhere; white-space:pre-wrap; white-space:break-spaces; }
.family-layout-content > :first-child { margin-top:0; }
.family-layout-content > :last-child { margin-bottom:0; }
.family-layout-content ul,.family-layout-content ol { margin:3px 0; padding-left:1.5em; text-align:left; }
.family-layout-element.role-title,.family-layout-element.role-personname,.family-layout-element.role-quote,.family-layout-element.role-footertext { font-family:Georgia,serif; }
.family-layout-element.role-title { color:#4b414d; font-size:2.35cqi; }
.family-layout-element.role-personname { color:#332d34; font-size:4.05cqi; line-height:1.15; }
.family-layout-element.role-lifedates { color:#756d76; font-size:1.55cqi; }
.family-layout-element.role-quote { font-size:1.8cqi; font-style:italic; line-height:1.45; }
.family-layout-element.role-body,.family-layout-element.role-ceremonytext { font-size:1.72cqi; }
.family-layout-element.role-footertext { color:var(--print-accent); font-size:1.45cqi; }
.family-print-document.single .family-layout-element { font-size:3cqi; }
.family-print-document.single .family-layout-element.role-title { font-size:4.1cqi; }
.family-print-document.single .family-layout-element.role-personname { font-size:6.1cqi; }
.family-print-document.single .family-layout-element.role-lifedates { font-size:2.45cqi; }
.family-print-document.single .family-layout-element.role-quote { font-size:3.05cqi; }
.family-print-document.single .family-layout-element.role-body,.family-print-document.single .family-layout-element.role-ceremonytext { font-size:2.75cqi; }
.family-print-document.single .family-layout-element.role-footertext { font-size:2.35cqi; }
.family-layout-element [data-family-layout-content][contenteditable="true"] { min-width:100%; min-height:100%; padding:3px; outline:0; cursor:text; }
.family-layout-element:hover,.family-layout-element.selected { overflow:visible; outline:1px dashed rgba(128,52,137,.72); outline-offset:1px; background:rgba(255,255,255,.68); }
.family-layout-element.selected { outline:2px solid var(--primary); box-shadow:0 0 0 2px rgba(255,255,255,.72); }
.family-layout-element:not(.selected) .family-layout-drag,.family-layout-element:not(.selected) .family-layout-remove,.family-layout-element:not(.selected) .family-layout-resize { opacity:0; pointer-events:none; }
.family-layout-drag,.family-layout-remove { width:25px; height:25px; position:absolute; z-index:4; top:2px; display:grid; place-items:center; padding:0; border:1px solid #d2c2d5; border-radius:3px; background:#fff; color:var(--primary); box-shadow:0 2px 7px rgba(45,35,47,.16); }
.family-layout-drag { left:2px; cursor:move; touch-action:none; }
.family-layout-remove { right:2px; color:#9b3838; }
.family-layout-format { position:absolute; top:2px; left:31px; width:29px; height:25px; z-index:4; border:1px solid #d2c2d5; border-radius:3px; background:white; color:var(--primary); font:600 12px Arial,sans-serif; cursor:pointer; }
.family-layout-element:not(.selected) .family-layout-format { opacity:0; pointer-events:none; }
.family-format-toolbar > label { display:grid; gap:3px; min-width:130px; max-width:220px; font-size:11px; }
.family-layout-drag svg,.family-layout-remove svg { width:15px; height:15px; }
.family-layout-resize { width:13px; height:13px; position:absolute; z-index:4; right:0; bottom:0; border-right:3px solid var(--primary); border-bottom:3px solid var(--primary); cursor:nwse-resize; touch-action:none; }
.family-layout-content[contenteditable="true"]:empty::before { content:"Text eingeben"; color:#8a828a; font-style:italic; }
.family-snap-grid { position:absolute; z-index:4; inset:0; pointer-events:none; background-image:repeating-linear-gradient(to right,rgba(128,52,137,.13) 0,rgba(128,52,137,.13) 1px,transparent 1px,transparent var(--family-snap-size)),repeating-linear-gradient(to bottom,rgba(128,52,137,.13) 0,rgba(128,52,137,.13) 1px,transparent 1px,transparent var(--family-snap-size)); }
.family-snap-guide { position:absolute; z-index:8; display:block; pointer-events:none; background:#ba2b78; box-shadow:0 0 0 1px rgba(255,255,255,.82); }
.family-snap-guide.vertical { top:0; bottom:0; width:1px; transform:translateX(-.5px); }
.family-snap-guide.horizontal { right:0; left:0; height:1px; transform:translateY(-.5px); }
.draft-preview .family-print-document-page { display:grid; }
.draft-preview .family-print-page-label { display:flex; }
.family-wysiwyg-ribbon { display:flex; align-items:end; flex-wrap:wrap; gap:8px; margin-bottom:12px; padding:11px; border:1px solid var(--line); background:#f8f7f4; }
.family-wysiwyg-ribbon > * { min-width:0; max-width:100%; }
.family-wysiwyg-ribbon label { display:grid; gap:4px; color:#665e67; font-size:10px; font-weight:700; text-transform:uppercase; }
.family-wysiwyg-ribbon .family-author { min-width:180px; flex:1; }
.family-wysiwyg-ribbon select,.family-wysiwyg-ribbon input { min-height:38px; font-size:13px; }
.family-wysiwyg-ribbon input[type="color"] { width:42px; padding:3px; }
.family-layout-actions { display:flex; gap:6px; margin-left:auto; }
.family-layout-actions .button { min-height:38px; }
.family-layout-actions svg { width:16px; height:16px; }
.family-format-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:5px; margin-bottom:8px; padding:6px; border:1px solid #d2ccd2; border-radius:4px; background:#fff; }
.family-tool-group { display:flex; align-items:center; gap:2px; padding-right:5px; border-right:1px solid #ddd7dd; }
.family-tool-group:last-child { padding-right:0; border-right:0; }
.family-format-toolbar button { min-width:32px; height:31px; display:grid; place-items:center; padding:0 7px; border:1px solid transparent; border-radius:3px; background:transparent; color:#4f4650; font-size:12px; cursor:pointer; }
.family-format-toolbar button:hover,.family-format-toolbar button.active { border-color:#d7c1da; background:#eee8ee; color:var(--primary); }
.family-format-toolbar button:disabled,.family-format-toolbar select:disabled,.family-format-toolbar input:disabled { opacity:.35; cursor:not-allowed; }
.family-format-toolbar sup,.family-format-toolbar sub { font-size:8px; }
.family-tool-group label { display:flex; align-items:center; gap:5px; color:#665e67; font-size:9px; font-weight:700; text-transform:uppercase; }
.family-tool-group select { min-height:31px; width:88px; padding:3px 20px 3px 6px; border:1px solid #d6d0d6; border-radius:3px; background:#fff; font-size:11px; }
.family-point-size-control input { width:58px; height:31px; padding:3px 5px; border:1px solid #d6d0d6; border-radius:3px; background:#fff; color:#4f4650; font-size:11px; text-align:right; }
.family-point-size-control b { color:#665e67; font-size:9px; font-weight:700; text-transform:none; }
.family-color-tools label { width:32px; height:31px; position:relative; display:grid; place-items:center; overflow:hidden; border:1px solid transparent; border-radius:3px; cursor:pointer; }
.family-color-tools label > span { font-size:13px; font-weight:800; }
.family-color-tools label > span.highlight { padding:0 3px; background:#f2df9f; }
.family-color-tools input { width:100%; height:7px; position:absolute; right:0; bottom:0; left:0; padding:0; border:0; }
.family-alignment-tools button:nth-child(1) { justify-items:start; }
.family-alignment-tools button:nth-child(2) { justify-items:center; }
.family-alignment-tools button:nth-child(3) { justify-items:end; }
.family-alignment-tools button:nth-child(4) { letter-spacing:2px; }
.family-editor-context { min-height:43px; display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:10px; padding:7px 10px; border:1px solid var(--line); background:#f8f5f8; }
.family-editor-context > div { min-width:0; display:flex; align-items:baseline; gap:9px; }
.family-editor-context strong { overflow:hidden; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.family-editor-context span { color:var(--muted); font-size:10px; }
.family-editor-context label { display:flex; align-items:center; gap:7px; color:#665e67; font-size:10px; font-weight:700; text-transform:uppercase; }
.family-editor-context input { width:100px; accent-color:var(--primary); }
.family-editor-context output { min-width:42px; font-size:10px; text-align:right; }
.family-editor-context .family-snap-controls { min-width:max-content; align-items:center; gap:8px; margin-left:auto; padding-left:10px; border-left:1px solid #d8ceda; }
.family-editor-context .family-snap-toggle { min-height:31px; display:flex; align-items:center; gap:6px; padding:0 8px; border:1px solid #d3c4d6; border-radius:3px; background:#fff; color:#514057; cursor:pointer; }
.family-editor-context .family-snap-toggle input { width:15px; height:15px; margin:0; accent-color:var(--primary); }
.family-editor-context .family-snap-toggle span { color:inherit; font-size:10px; }
.family-editor-context .family-snap-controls select { width:66px; min-height:31px; padding:3px 22px 3px 7px; border-color:#d3cbd5; background:#fff; color:#453849; font-size:11px; }
.family-wysiwyg-motifs { display:flex; grid-template-columns:none; gap:8px; overflow-x:auto; margin-bottom:14px; padding-bottom:5px; }
.family-wysiwyg-motifs label { width:118px; min-width:118px; }
.family-wysiwyg-motifs label > span { min-height:86px; grid-template-rows:56px auto; }
.family-wysiwyg-workspace { overflow:auto; padding:22px; border:1px solid #d8d2d8; background:#eeecec; }
.family-wysiwyg-workspace .family-print-document { width:min(820px,100%); margin:auto; zoom:var(--family-editor-zoom,1); }
.family-wysiwyg-workspace .family-print-sheet { width:min(760px,100%); }
.family-wysiwyg-workspace .family-print-document.single .family-print-sheet { width:min(430px,100%); }
.family-wysiwyg-workspace + .button-row { margin-top:16px; }
.status { display: inline-block; padding: 3px 8px; border-radius: 10px; background: #fff0d7; color: #85520b; font-size: 10px; font-weight: 700; }
.status.success { background: #e2f1e7; color: #236342; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.button-row { display: flex; justify-content: flex-end; gap: 8px; margin-top: 15px; }
.comment { padding: 13px 0; border-bottom: 1px solid #e5e9e7; }
.comment strong,.comment time { display: block; }
.comment time { margin-top: 2px; color: var(--muted); font-size: 9px; }
.comment p { margin: 8px 0 0; font-size: 12px; line-height: 1.5; }
.dereg-row { display: grid; grid-template-columns: 1fr auto; gap: 12px; padding: 13px 0; border-bottom: 1px solid #e5e9e7; }
.dereg-row strong,.dereg-row small { display: block; }
.dereg-row small { margin-top: 3px; color: var(--muted); }
.portal-identity-section { position: relative; overflow: hidden; }
.portal-section-kicker { display: block; margin-bottom: 5px; color: var(--primary); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.portal-id-upload { min-height: 92px; display: grid; grid-template-columns: 44px minmax(0,1fr); align-items: center; gap: 13px; margin-top: 14px; padding: 15px; border: 1px dashed #bca8c1; border-radius: 6px; background: #faf6fb; cursor: pointer; }
.portal-id-upload:hover { border-color: #643182; background: #f5eef6; }
.portal-id-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.portal-id-upload > span { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 5px; background: #643182; color: #fff; }
.portal-id-upload svg { width: 21px; height: 21px; }
.portal-id-upload > div { min-width: 0; display: grid; gap: 4px; }
.portal-id-upload strong { color: #342939; font-size: 14px; }
.portal-id-upload small { color: #766d79; font-size: 12px; }
.portal-id-documents { margin-top: 20px; padding-top: 15px; border-top: 1px solid #e3dbe5; }
.portal-id-documents h3 { margin: 0 0 9px; font-size: 13px; }
.portal-id-document { display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 9px 0; border-top: 1px solid #edf0f1; }
.portal-id-document > span { color: #643182; }
.portal-id-document svg { width: 18px; height: 18px; }
.portal-id-document > div { min-width: 0; display: grid; gap: 2px; }
.portal-id-document strong { overflow: hidden; color: #39464a; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.portal-id-document small { color: #778286; font-size: 10px; }
.portal-id-document > b { padding: 4px 6px; border-radius: 3px; background: #eaf5f0; color: #39705e; font-size: 10px; }
.portal-sensitive-note { display: grid; gap: 3px; margin-top: 16px; padding: 11px 13px; border-left: 3px solid #b28b55; background: #fff9ef; }
.portal-sensitive-note strong { color: #624a2c; font-size: 12px; }
.portal-sensitive-note span { color: #79694e; font-size: 11px; line-height: 1.45; }
.info-box { padding: 16px; border-left: 3px solid var(--gold); background: #fbf7ee; color: #625641; font-size: 11px; line-height: 1.55; }
footer { min-height: 60px; display: flex; justify-content: space-between; align-items: center; padding: 0 max(24px,calc((100vw - 1120px)/2)); background: #2b262c; color: #cbbfce; font-size: 10px; }
.portal-toast { position: fixed; right: 18px; bottom: 18px; z-index: 20; display: none; max-width: 340px; padding: 12px 15px; border-left: 4px solid #5aa079; border-radius: 3px; background: #2b2230; color: #fff; box-shadow: 0 12px 30px rgba(0,0,0,.2); }
.portal-toast.show { display: block; }
@media(max-width:800px){.portal-header{padding:0 16px}.portal-header>span{display:none}main{width:calc(100% - 24px);padding-top:14px}.search-intro{min-height:300px;padding:34px 18px;background-position:calc(100% + 90px) 50%;background-size:210px}.search-intro h1{font-size:38px}.memorial-search{grid-template-columns:1fr}.memorial-search .button{width:100%}.memorial-result{grid-template-columns:62px minmax(0,1fr) 18px;gap:12px;padding:12px}.memorial-result-portrait{width:62px;height:62px}.memorial-hero{min-height:300px;grid-template-columns:116px minmax(0,1fr);gap:22px;padding:28px 20px}.memorial-portrait{width:116px;height:150px;border-width:3px}.memorial-hero h1{font-size:29px}.back-link{margin-bottom:20px}.memorial-hero-flower{width:240px;right:-85px;bottom:-130px}.memorial-layout,.portal-content,.family-print-layout{grid-template-columns:1fr}.family-print-editor-heading{grid-template-columns:1fr;gap:10px}.family-print-preview-stage{position:static}.family-layout-actions{width:100%;margin-left:0}.family-layout-actions .button{flex:1}.memory-quote{padding:28px 22px}.memory-quote blockquote{font-size:20px}.portal-section{padding:18px}.ceremony-list article{grid-template-columns:1fr;gap:8px}.section-heading{align-items:flex-start;flex-direction:column}.memorial-entry{grid-template-columns:58px minmax(0,1fr)}.memorial-entry>.memorial-symbol-visual{width:54px;height:54px}.memorial-entry header{align-items:flex-start;flex-direction:column;gap:3px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.portal-hero{padding:24px}.portal-hero h1{font-size:29px}.portal-mark{display:none}footer{padding:18px;gap:15px;flex-wrap:wrap}.button-row{flex-direction:column}.button-row .button{width:100%}}
@media(max-width:480px){.memorial-hero{grid-template-columns:1fr;text-align:center}.memorial-portrait{width:132px;height:160px;margin:auto}.back-link{text-align:left}.memorial-hero-flower{display:none}.symbol-choice{grid-template-columns:1fr 1fr}.symbol-choice label>span{min-height:142px;padding:6px 6px 9px}.memorial-symbol-visual{width:100%;height:auto;max-width:116px}.family-print-motifs{grid-template-columns:1fr 1fr}.family-print-verse-row{grid-template-columns:1fr}.family-print-sheet.folded .family-print-copy{padding:10px}.family-print-copy h3{font-size:16px}.memory-grid{grid-template-columns:1fr}.memory-card>button{height:230px}.memory-dialog{width:calc(100% - 16px);max-height:calc(100vh - 16px)}.memory-dialog header{padding:11px 13px}.memory-dialog h2{font-size:19px}.memory-dialog>div>p{padding:14px;font-size:14px}.share-actions{grid-template-columns:1fr}.search-results>header{align-items:flex-start;flex-direction:column;gap:5px}}

/* Bestattungshaus Baumann brand system */
:root { --sage:#557068; --gold:#c5a36a; --charcoal:#2f2931; --porcelain:#f7f5f4; --line:#ddd9dc; }
body { background:#f2f4f3; }
.portal-header { height:82px; background:#fff; }
.portal-brand img { width:290px; height:58px; object-fit:contain; object-position:left center; }
.portal-context { display:grid; justify-items:end; gap:4px; }
.portal-context strong { color:var(--charcoal); font-size:12px; }
.portal-context span { color:var(--sage); font-size:10px; }
main { padding-top:24px; }
.search-intro { min-height:410px; align-items:flex-start; justify-content:center; padding:58px 56px; background:#2f2931 url('/assets/baumann-memorial-dandelions-v2.png') no-repeat center/cover; text-align:left; }
.search-intro > p { max-width:470px; color:#eee9ef; font-size:14px; }
.search-intro h1 { max-width:560px; font-size:52px; }
.memorial-search { width:min(590px,100%); }
.memorial-hero { min-height:370px; background:#2f2931; }
.memorial-hero-flower { right:-180px; bottom:-190px; width:730px; opacity:.44; }
.portal-section { border-color:#ddd9dc; box-shadow:0 1px 0 rgba(47,41,49,.02); }
.memory-quote { border-left-color:#c5a36a; background:#f7f3f7; }
.tribute-preview { position:relative; isolation:isolate; background:#2f2931 url('/assets/baumann-memorial-dandelions-v2.png') no-repeat center/cover; }
.tribute-preview::before { content:""; position:absolute; inset:0; z-index:-1; background:rgba(47,41,49,.48); }
.portal-hero { position:relative; overflow:hidden; background:#4b344d; }
.portal-hero > div { position:relative; z-index:2; }
.portal-hero-botanical { position:absolute; right:-80px; top:-150px; width:600px; opacity:.27; pointer-events:none; }
.portal-mark { position:relative; z-index:2; border-radius:4px; }
body[data-portal="print"] .portal-hero { background:#514651; }
body[data-portal="print"] .portal-section { border-color:#dfd7df; }
body[data-portal="print"] .portal-section > p { font-size:13px; }
body[data-portal="print"] .portal-process span { font-size:12px; }
body[data-portal="print"] .draft-meta { font-size:11px; }
body[data-portal="print"] .draft-preview { position:relative; border-color:#cfc6bc; background:#fbfaf7; box-shadow:0 12px 28px rgba(52,45,53,.08); }
body[data-portal="deregistration"] .portal-hero { background:#506a62; }
body[data-portal="deregistration"] .portal-eyebrow { color:#f0d59b; }
body[data-portal="deregistration"] .info-box { border-left-color:#557068; background:#eef4f1; color:#415851; }
.portal-process { display:grid; grid-template-columns:repeat(3,1fr); margin-bottom:18px; border:1px solid var(--line); background:#fff; }
.portal-process span { min-height:62px; display:flex; align-items:center; gap:10px; padding:12px 14px; border-right:1px solid var(--line); color:#69636a; font-size:10px; }
.portal-process span:last-child { border-right:0; }
.portal-process b { width:25px; height:25px; display:grid; place-items:center; flex:0 0 auto; border:1px solid #c8c1c9; border-radius:50%; color:#675f69; }
.portal-process .done b { border-color:#643182; background:#643182; color:#fff; }
.contact-section strong { color:#463b47; }
footer strong { color:#fff; font-weight:650; }
@media(max-width:800px){.portal-header{height:72px}.portal-brand img{width:220px;height:48px}.portal-context{display:none}.search-intro{min-height:390px;padding:42px 24px;background-position:62% center;background-size:cover}.search-intro h1{font-size:39px}.search-intro>p{max-width:88%}.memorial-hero{min-height:320px}.portal-hero-botanical{right:-240px}.portal-process{grid-template-columns:1fr}.portal-process span{min-height:48px;border-right:0;border-bottom:1px solid var(--line)}.portal-process span:last-child{border-bottom:0}}
@media(max-width:480px){.portal-brand img{width:196px}.search-intro{min-height:410px;background-position:68% center}.search-intro>p{max-width:100%}.search-intro h1{font-size:34px}.portal-hero-botanical{display:none}}
@media(max-width:560px){.tribute-dialog{width:calc(100% - 16px);max-height:calc(100vh - 16px)}.tribute-dialog-shell{max-height:calc(100vh - 16px)}.tribute-dialog-shell>header{padding:14px 16px}.tribute-dialog-shell>header h2{font-size:18px}.tribute-dialog-canvas{padding:10px}.tribute-dialog-shell>footer{align-items:stretch;flex-direction:column-reverse;padding:12px 16px}.tribute-dialog-shell>footer .button{width:100%}}

/* Gedenkportal search landing */
body[data-portal="search"] { background:#f4f5f4; }
body[data-portal="search"] main { width:100%; margin:0; padding:0 0 82px; }
body[data-portal="search"] .portal-header { border-bottom-color:#e7e3e7; }
body[data-portal="search"] .search-intro { position:relative; min-height:480px; display:block; overflow:hidden; padding:0; border:0; background:#2f2931 url('/assets/baumann-memorial-dandelions-v2.png') no-repeat center 48%/cover; text-align:left; }
body[data-portal="search"] .search-intro.has-rotating-hero { background:#2f2931; }
body[data-portal="search"] .search-intro::before { content:""; position:absolute; z-index:1; inset:0; background:rgba(35,25,37,.68); }
.search-intro-inner { width:min(1120px,calc(100% - 56px)); min-height:480px; position:relative; z-index:2; display:flex; align-items:flex-start; flex-direction:column; justify-content:center; margin:0 auto; padding:42px 0 52px; }
.search-intro-inner > span { color:#dbc58f; font-size:11px; font-weight:700; text-transform:uppercase; }
.search-intro-inner h1 { max-width:650px; margin:15px 0 13px; color:#fff; font-family:Georgia,serif; font-size:58px; font-weight:400; line-height:1.08; }
.search-intro-inner > p { max-width:530px; margin:0; color:#eee9ef; font-size:16px; line-height:1.65; }
body[data-portal="search"] .memorial-search { width:min(700px,100%); display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; margin-top:32px; padding:7px; border:1px solid rgba(255,255,255,.3); border-radius:6px; background:rgba(255,255,255,.96); box-shadow:0 18px 45px rgba(28,20,30,.2); }
body[data-portal="search"] .memorial-search input { min-height:50px; padding:0 17px; border:0; background:transparent; color:#3d3540; font-size:15px; }
body[data-portal="search"] .memorial-search input:focus { outline:2px solid rgba(128,52,137,.25); outline-offset:-2px; }
body[data-portal="search"] .memorial-search .button { min-height:50px; padding:0 23px; border-radius:4px; font-size:14px; }
.search-main { width:min(1120px,calc(100% - 56px)); margin:0 auto; }
body[data-portal="search"] .search-results { width:100%; margin:0; padding:54px 0 36px; }
body[data-portal="search"] .search-results > header { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding:0 0 22px; }
body[data-portal="search"] .search-results > header > div > span { display:block; color:var(--primary); font-size:11px; font-weight:700; text-transform:uppercase; }
body[data-portal="search"] .search-results h2 { margin:7px 0 0; color:#3b343d; font-family:Georgia,serif; font-size:35px; font-weight:400; }
body[data-portal="search"] .search-results > header > strong { color:#756d76; font-size:12px; font-weight:600; }
body[data-portal="search"] .search-results > div { border:0; border-radius:0; background:transparent; }
.memorial-result-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
body[data-portal="search"] .memorial-result { min-height:158px; display:grid; grid-template-columns:96px minmax(0,1fr) 38px; align-items:center; gap:19px; overflow:hidden; padding:22px; border:1px solid #ddd9dc; border-radius:6px; background:#fff; box-shadow:0 8px 28px rgba(49,41,50,.05); transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease; }
body[data-portal="search"] .memorial-result:hover { border-color:#c9b9cb; background:#fff; box-shadow:0 14px 34px rgba(56,40,58,.1); transform:translateY(-2px); }
body[data-portal="search"] .memorial-result-portrait { width:96px; height:96px; border:3px solid #fff; background:#eee8ef; box-shadow:0 0 0 1px #d6cdd8,0 8px 20px rgba(60,44,62,.12); font-size:27px; }
.memorial-result-copy { min-width:0; }
body[data-portal="search"] .memorial-result-copy > span { color:#8a678d; font-size:9px; font-weight:700; text-transform:uppercase; }
body[data-portal="search"] .memorial-result-copy strong { margin-top:7px; overflow:hidden; color:#3b333c; font-size:24px; text-overflow:ellipsis; white-space:nowrap; }
body[data-portal="search"] .memorial-result-copy small { margin-top:7px; color:#6d666e; font-size:12px; }
body[data-portal="search"] .memorial-result-copy em { margin-top:13px; color:#557068; font-size:10px; }
body[data-portal="search"] .result-arrow { width:36px; height:36px; display:grid; place-items:center; border:1px solid #d8cfd9; border-radius:50%; color:var(--primary); font-size:18px; transition:background .2s ease,color .2s ease; }
body[data-portal="search"] .memorial-result:hover .result-arrow { border-color:var(--primary); background:var(--primary); color:#fff; }
body[data-portal="search"] .search-empty { grid-column:1 / -1; min-height:170px; display:grid; place-items:center; align-content:center; border:1px solid #ddd9dc; border-radius:6px; background:#fff; }
.search-reflection { max-width:850px; margin:34px auto 8px; padding:36px 50px 0; border-top:1px solid #d9d4d9; color:#5b525d; font-family:Georgia,serif; font-size:22px; font-style:italic; line-height:1.65; text-align:center; }
@media(max-width:800px) {
  body[data-portal="search"] .search-intro,.search-intro-inner { min-height:445px; }
  body[data-portal="search"] .search-intro { background-position:64% center; }
  .search-intro-inner,.search-main { width:calc(100% - 36px); }
  .search-intro-inner h1 { font-size:45px; }
  .search-intro-inner > p { max-width:88%; font-size:15px; }
  .memorial-result-grid { grid-template-columns:1fr; }
}
@media(max-width:560px) {
  body[data-portal="search"] .search-intro,.search-intro-inner { min-height:420px; }
  body[data-portal="search"] .search-intro { background-position:68% center; }
  .search-intro-inner { width:calc(100% - 32px); padding:34px 0 38px; }
  .search-intro-inner h1 { margin-top:12px; font-size:38px; }
  .search-intro-inner > p { max-width:100%; font-size:14px; }
  body[data-portal="search"] .memorial-search { grid-template-columns:1fr; margin-top:24px; }
  body[data-portal="search"] .memorial-search .button { width:100%; }
  .search-main { width:calc(100% - 28px); }
  body[data-portal="search"] .search-results { padding-top:38px; }
  body[data-portal="search"] .search-results > header { align-items:flex-start; flex-direction:column; gap:8px; }
  body[data-portal="search"] .search-results h2 { font-size:30px; }
  body[data-portal="search"] .memorial-result { min-height:132px; grid-template-columns:74px minmax(0,1fr) 30px; gap:13px; padding:16px 14px; }
  body[data-portal="search"] .memorial-result-portrait { width:74px; height:74px; }
  body[data-portal="search"] .memorial-result-copy strong { font-size:20px; }
  body[data-portal="search"] .memorial-result-copy small { font-size:11px; }
  body[data-portal="search"] .result-arrow { width:30px; height:30px; }
  .search-reflection { margin-top:24px; padding:28px 10px 0; font-size:18px; }
}

/* Public memorial experience */
body[data-portal="memorial"] { background:#f7f5f6; }
body[data-portal="memorial"] main { width:100%; margin:0; padding:0 0 72px; }
.portal-header.memorial-toolbar { min-height:78px; height:auto; position:relative; z-index:4; gap:24px; padding:10px max(28px,calc((100vw - 1120px)/2)); }
.memorial-header-actions { display:flex; align-items:center; justify-content:flex-end; gap:6px; }
.memorial-header-actions button,.memorial-header-actions a { min-height:40px; display:inline-flex; align-items:center; justify-content:center; padding:0 13px; border:0; border-radius:4px; background:transparent; color:#4a424b; font-size:13px; font-weight:650; text-decoration:none; white-space:nowrap; }
.memorial-header-actions button { gap:7px; }
.portal-action-icon { width:18px; height:18px; display:block; flex:0 0 auto; }
.memorial-header-actions button:hover,.memorial-header-actions a:hover { background:#f4eff4; color:var(--primary); }
.memorial-header-actions a { border:1px solid #d8d1d9; padding-inline:16px; }
.memorial-header-actions button:disabled { opacity:.55; cursor:wait; }
body[data-portal="memorial"] .memorial-hero { min-height:500px; display:block; padding:0; border:0; background:#2f2931 url('/assets/baumann-memorial-dandelions-v2.png') no-repeat center 46%/cover; }
body[data-portal="memorial"] .memorial-hero.has-rotating-hero { background:#2f2931; }
body[data-portal="memorial"] .memorial-hero::before { content:""; position:absolute; z-index:1; inset:0; background:rgba(38,27,40,.73); }
.memorial-hero-inner { width:min(1120px,calc(100% - 56px)); min-height:500px; position:relative; z-index:2; display:grid; grid-template-columns:190px minmax(0,1fr); align-items:center; gap:42px; margin:auto; padding:54px 0 48px; }
body[data-portal="memorial"] .memorial-portrait { width:178px; height:178px; border:5px solid #fff; border-radius:50%; box-shadow:0 18px 48px rgba(0,0,0,.28); }
body[data-portal="memorial"] .memorial-identity { min-width:0; }
body[data-portal="memorial"] .memorial-identity h1 { display:flex; align-items:baseline; flex-wrap:wrap; gap:12px; margin:12px 0 10px; color:#fff; font-size:52px; line-height:1.08; }
body[data-portal="memorial"] .memorial-identity h1 small { color:#d9cedb; font-family:"Segoe UI",Arial,sans-serif; font-size:18px; font-weight:500; }
body[data-portal="memorial"] .memorial-identity > p { color:#e7e0e8; font-size:16px; }
.memorial-hero-events { width:min(780px,100%); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; overflow:hidden; margin-top:28px; border:1px solid rgba(255,255,255,.18); border-radius:6px; background:rgba(255,255,255,.12); backdrop-filter:blur(7px); }
.memorial-hero-events article { min-width:0; padding:17px 20px; background:rgba(54,39,56,.32); }
.memorial-hero-events span,.memorial-hero-events strong,.memorial-hero-events small { display:block; }
.memorial-hero-events span { color:#d8bedb; font-size:10px; font-weight:700; text-transform:uppercase; }
.memorial-hero-events strong { margin-top:5px; color:#fff; font-size:14px; }
.memorial-hero-events small { margin-top:7px; color:#e0d8e1; font-size:12px; line-height:1.45; }
body[data-portal="memorial"] .memorial-identity blockquote { max-width:820px; margin:25px 0 0; padding-left:20px; border-left:2px solid #d7bd7e; color:#f5f0f5; font-family:Georgia,serif; font-size:20px; font-style:italic; line-height:1.55; }
.memorial-tabs { min-height:62px; display:flex; align-items:stretch; gap:8px; overflow-x:auto; padding:0 max(28px,calc((100vw - 1120px)/2)); border-bottom:1px solid #dedade; background:#fff; }
.memorial-tabs button { min-width:max-content; padding:0 20px; border:0; border-bottom:3px solid transparent; background:#fff; color:#665e67; font-size:14px; font-weight:600; }
.memorial-tabs button:hover { color:var(--primary); }
.memorial-tabs button.active { border-bottom-color:var(--primary); color:var(--primary); }
.memorial-content-shell { width:min(1120px,calc(100% - 56px)); margin:0 auto; }
.memorial-tab-panel { padding:48px 0 20px; }
.memorial-tab-panel[hidden] { display:none; }
.memorial-story-layout,.memorial-panel-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(320px,.68fr); align-items:start; gap:56px; }
.life-story > span,.memorial-callout > span,.memorial-form-pane > span,.memorial-panel-heading span { color:var(--primary); font-size:11px; font-weight:700; text-transform:uppercase; }
.life-story h2,.memorial-panel-heading h2 { margin:8px 0 0; color:#3c343e; font-family:Georgia,serif; font-size:36px; font-weight:400; }
.life-story p { margin:24px 0 0; color:#554e56; font-family:Georgia,serif; font-size:18px; line-height:1.85; white-space:pre-line; }
.memorial-callout { padding:8px 0 8px 30px; border-left:3px solid #c9a965; }
.memorial-callout h3,.memorial-form-pane h2 { margin:8px 0 0; color:#3e3540; font-family:Georgia,serif; font-size:26px; font-weight:400; }
.memorial-callout p,.memorial-form-pane > p { margin:12px 0 20px; color:#6e6670; font-size:14px; line-height:1.6; }
.memorial-callout > div { display:flex; align-items:center; gap:12px; margin-top:26px; padding-top:20px; border-top:1px solid #ded9de; }
.memorial-callout > div strong { color:var(--primary); font-family:Georgia,serif; font-size:34px; font-weight:400; }
.memorial-callout > div small { color:#756d76; font-size:12px; line-height:1.4; }
.memorial-panel-heading { min-height:52px; display:flex; align-items:flex-end; justify-content:space-between; gap:24px; }
.memorial-panel-heading h2 { font-size:32px; }
.memorial-form-pane { min-width:0; padding:28px; border:1px solid #ddd7de; border-radius:6px; background:#fff; box-shadow:0 12px 34px rgba(49,39,50,.06); }
body[data-portal="memorial"] .memorial-entry-list { margin-top:24px; }
body[data-portal="memorial"] .memorial-entry { padding:22px 0; }
body[data-portal="memorial"] .memory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:24px; }
body[data-portal="memorial"] .memory-card { border-radius:6px; }

.qr-dialog { width:min(760px,calc(100% - 32px)); max-height:calc(100vh - 32px); padding:0; overflow:hidden; border:0; border-radius:8px; background:#fff; box-shadow:0 28px 80px rgba(32,23,34,.3); }
.qr-dialog::backdrop,.tribute-dialog::backdrop { background:rgba(31,24,33,.7); backdrop-filter:blur(5px); }
.qr-dialog-shell { max-height:calc(100vh - 32px); display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.qr-dialog-shell > header,.tribute-dialog-shell > header { display:flex; align-items:flex-start; justify-content:space-between; gap:22px; padding:24px 28px 18px; border-bottom:1px solid #e0dce0; }
.qr-dialog-shell > header span,.tribute-dialog-shell > header span { color:var(--primary); font-size:11px; font-weight:700; text-transform:uppercase; }
.qr-dialog-shell > header h2,.tribute-dialog-shell > header h2 { margin:7px 0 0; color:#382f3a; font-family:Georgia,serif; font-size:29px; font-weight:400; }
.qr-dialog-shell > header p,.tribute-dialog-shell > header p { margin:8px 0 0; color:#706872; font-size:13px; line-height:1.5; }
.dialog-icon-close,.tribute-dialog-close { width:38px; height:38px; display:grid; place-items:center; flex:0 0 auto; padding:0; border:1px solid #d5ced6; border-radius:4px; background:#fff; color:#544b55; font-size:25px; line-height:1; }
.qr-dialog-content,.tribute-dialog-canvas { min-height:0; overflow:auto; padding:22px; background:#f0eef0; }
.qr-dialog-content img { width:auto; max-width:100%; height:auto; max-height:calc(100vh - 320px); display:block; margin:auto; box-shadow:0 14px 38px rgba(47,39,49,.14); }
.qr-dialog-shell > footer { padding:18px 28px 22px; background:#fff; text-align:center; }
.qr-dialog-shell > footer > div { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.qr-dialog-shell > footer small,.tribute-dialog-shell > footer small { display:block; margin-top:11px; color:#817983; font-size:11px; }
.tribute-dialog { width:min(740px,calc(100% - 32px)); border-radius:8px; }
.tribute-dialog-canvas img { max-height:calc(100vh - 310px); }
.tribute-dialog-shell > footer { min-height:96px; display:block; padding:16px 28px 20px; text-align:center; }
.tribute-dialog-shell > footer .button { width:100%; min-height:48px; }

@media(max-width:800px){
  .portal-header.memorial-toolbar { padding-inline:18px; }
  .memorial-header-actions button,.memorial-header-actions a { padding-inline:9px; font-size:12px; }
  .memorial-hero-inner { width:calc(100% - 36px); grid-template-columns:140px minmax(0,1fr); gap:25px; padding-block:40px; }
  body[data-portal="memorial"] .memorial-portrait { width:132px; height:132px; }
  body[data-portal="memorial"] .memorial-identity h1 { font-size:38px; }
  .memorial-hero-events { grid-template-columns:1fr; }
  .memorial-story-layout,.memorial-panel-layout { grid-template-columns:1fr; gap:36px; }
  .memorial-content-shell { width:calc(100% - 36px); }
  .memorial-tab-panel { padding-top:36px; }
  .memorial-form-pane { padding:22px; }
}

body[data-portal="family"] { background:#f4f2f3; }
body[data-portal="family"] .portal-hero { background:linear-gradient(105deg,#2e202f 0%,#4b294d 62%,#6c3b70 100%); }
body[data-portal="family"] main { width:min(1240px,calc(100% - 36px)); }
body[data-portal="family"] .portal-content { grid-template-columns:minmax(0,1.8fr) minmax(300px,.72fr); }
.family-quick-nav { min-height:58px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-items:stretch; overflow:hidden; margin-bottom:18px; border:1px solid #dcd5dc; border-radius:6px; background:#fff; box-shadow:0 8px 24px rgba(54,42,56,.05); }
.family-quick-nav a { min-width:0; display:flex; align-items:center; justify-content:center; gap:8px; padding:10px 12px; border-right:1px solid #e6e0e6; color:#4f4651; font-size:12px; font-weight:700; text-align:center; text-decoration:none; }
.family-quick-nav a:last-child { border-right:0; }
.family-quick-nav a:hover { background:#f8f3f8; color:#643182; }
.family-quick-nav svg { width:17px; height:17px; flex:0 0 auto; color:#643182; }
.family-overview,.family-scope,.family-action-section,.family-appointment-section { scroll-margin-top:82px; }
.family-overview { overflow:hidden; padding:0; }
.family-overview > .section-heading { min-height:82px; padding:20px 24px; border-bottom:1px solid #e5dfe5; }
.family-overview-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-bottom:1px solid #e5dfe5; }
.family-overview-grid article { min-width:0; min-height:112px; display:grid; grid-template-columns:38px minmax(0,1fr); grid-template-rows:auto auto; align-content:center; gap:2px 10px; padding:17px; border-right:1px solid #e5dfe5; background:#fcfbfc; }
.family-overview-grid article:last-child { border-right:0; }
.family-overview-grid article > span { grid-row:1/3; width:38px; height:38px; display:grid; place-items:center; align-self:center; border-radius:50%; background:#eee3ef; color:#643182; }
.family-overview-grid article:nth-child(2) > span { background:#f5ecd8; color:#9a7128; }
.family-overview-grid article:nth-child(3) > span { background:#e7f0ec; color:#3e725a; }
.family-overview-grid article:nth-child(4) > span { background:#e7edf1; color:#486877; }
.family-overview-grid svg { width:18px; height:18px; }
.family-overview-grid small,.family-overview-grid strong { min-width:0; display:block; overflow-wrap:anywhere; }
.family-overview-grid small { color:#777078; font-size:9px; font-weight:700; text-transform:uppercase; }
.family-overview-grid strong { color:#342e35; font-size:13px; line-height:1.4; }
.family-next-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; padding:17px 18px; background:#fff; }
.family-next-steps article { min-width:0; display:grid; grid-template-columns:25px minmax(0,1fr); gap:8px; padding:5px 10px; }
.family-next-steps article > span { width:25px; height:25px; display:grid; place-items:center; border:1px solid #d9cddd; border-radius:50%; background:#faf7fa; color:#643182; font-size:10px; font-weight:800; }
.family-next-steps article.done > span { border-color:#cce0d4; background:#e6f1ea; color:#37704f; }
.family-next-steps svg { width:13px; height:13px; }
.family-next-steps strong,.family-next-steps small { display:block; overflow-wrap:anywhere; }
.family-next-steps strong { font-size:11px; }
.family-next-steps small { margin-top:3px; color:#746d75; font-size:9px; line-height:1.45; }
.family-section-count { min-width:32px; height:32px; display:grid; place-items:center; border-radius:50%; background:#643182; color:#fff; font-size:12px; }
.family-upload-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.family-process span { min-width:0; }
.family-record-type { align-self:flex-start; padding:7px 10px; border:1px solid #d9c5dc; border-radius:4px; background:#f8f2f8; color:#643182; font-size:12px; font-weight:700; }
.family-urn-arrival { position:relative; overflow:hidden; display:grid; grid-template-columns:52px minmax(0,1fr); align-items:center; gap:16px; margin-bottom:18px; padding:22px 24px; border:1px solid #cfe0d5; border-left:4px solid #4f8b69; border-radius:6px; background:linear-gradient(110deg,#f3f8f5 0%,#fff 72%); box-shadow:0 10px 28px rgba(47,69,56,.07); }
.family-urn-arrival::after { content:""; position:absolute; top:0; right:0; width:7px; height:100%; background:#d7b46a; opacity:.75; }
.family-urn-arrival > span { width:52px; height:52px; display:grid; place-items:center; border-radius:50%; background:#e1eee6; color:#34704b; }
.family-urn-arrival > span svg { width:24px; height:24px; }
.family-urn-arrival small,.family-urn-arrival h2,.family-urn-arrival p { display:block; }
.family-urn-arrival small { color:#34704b; font-size:11px; font-weight:800; text-transform:uppercase; }
.family-urn-arrival h2 { margin:3px 0 0; color:#294035; font-size:22px; }
.family-urn-arrival p { margin:6px 0 0; color:#5e6e65; font-size:13px; line-height:1.5; }
.family-appointment-section { border-top:3px solid #643182; }
.family-appointment-section > form { display:grid; gap:16px; margin-top:22px; }
.family-appointment-slots { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.family-appointment-slots fieldset { min-width:0; margin:0; padding:12px; border:1px solid #ded4df; border-radius:6px; background:#faf8fa; }
.family-appointment-slots legend { padding:0 6px; color:#643182; font-size:11px; font-weight:800; }
.family-appointment-slots label { display:grid; gap:5px; margin-top:8px; color:#635866; font-size:11px; font-weight:700; }
.family-appointment-slots input { width:100%; min-width:0; }
.family-request-slots { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; }
.family-request-slots span { display:inline-flex; align-items:center; gap:5px; padding:5px 7px; border:1px solid #dfd3e0; border-radius:4px; background:#faf7fa; color:#55485a; font-size:10px; }
.family-request-slots svg { width:12px; height:12px; color:#643182; }
.family-request-slots b { color:#643182; }
.family-scope-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:22px; }
.family-scope-group { overflow:hidden; border:1px solid #dfd8df; border-radius:6px; background:#fff; }
.family-scope-group > header { min-height:48px; display:grid; grid-template-columns:30px 1fr auto; align-items:center; gap:9px; padding:8px 12px; border-bottom:1px solid #e8e2e8; background:#faf7fa; }
.family-scope-group > header > span { width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:#eee2ef; color:#643182; }
.family-scope-group > header svg { width:15px; height:15px; }
.family-scope-group > header h3 { margin:0; font-size:14px; }
.family-scope-group > header b { min-width:22px; height:22px; display:grid; place-items:center; border-radius:50%; background:#643182; color:#fff; font-size:11px; }
.family-scope-group > div { min-height:52px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 13px; border-bottom:1px solid #eee9ee; }
.family-scope-group > div:last-child { border-bottom:0; }
.family-scope-group > div span,.family-scope-group > div strong,.family-scope-group > div small { display:block; }
.family-scope-group > div strong { font-size:13px; line-height:1.4; }
.family-scope-group > div small { margin-top:3px; color:#736a74; font-size:11px; }
.family-scope-group > div i { width:25px; height:25px; display:grid; place-items:center; flex:0 0 25px; border-radius:50%; background:#e8f3ec; color:#34704b; }
.family-scope-group > div i svg { width:13px; height:13px; }
.family-action-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.family-action-section > form { display:grid; gap:14px; margin-top:20px; }
.family-action-heading { display:flex; align-items:flex-start; gap:13px; }
.family-action-heading > span { width:42px; height:42px; display:grid; place-items:center; flex:0 0 42px; border-radius:6px; background:#eee3ef; color:#643182; }
.family-action-heading > span svg { width:20px; height:20px; }
.family-action-heading h2 { margin:2px 0 0; }
.family-action-heading p { margin:5px 0 0; }
.family-file-upload { min-height:82px; display:flex; align-items:center; gap:14px; padding:14px; border:1px dashed #b995bd; border-radius:6px; background:#fbf7fb; color:#4b3d4e; cursor:pointer; }
.family-file-upload input { position:absolute; opacity:0; pointer-events:none; }
.family-file-upload > span { width:42px; height:42px; display:grid; place-items:center; flex:0 0 42px; border-radius:50%; background:#643182; color:#fff; }
.family-file-upload strong,.family-file-upload small { display:block; }
.family-file-upload small { margin-top:4px; color:#756d76; }
.family-request-list,.family-music-list { display:grid; gap:10px; margin-top:16px; }
.family-document-list { display:grid; gap:9px; margin-top:16px; }
.family-document-row { display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:10px; padding:10px; border:1px solid #e4dde4; border-radius:6px; background:#fff; }
.family-document-row > span { width:34px; height:34px; display:grid; place-items:center; border-radius:5px; background:#e7edf1; color:#486877; }
.family-document-row > span svg { width:17px; height:17px; }
.family-document-row strong,.family-document-row small { display:block; overflow-wrap:anywhere; }
.family-document-row strong { font-size:12px; }
.family-document-row small { margin-top:3px; color:#777078; font-size:9px; }
.family-document-row p { margin:5px 0 0; color:#625b63; font-size:10px; line-height:1.4; }
.family-document-row .button { min-height:31px; padding:0 9px; gap:5px; font-size:10px; }
.family-document-row .button svg { width:13px; height:13px; }
.family-request-row { display:grid; grid-template-columns:34px minmax(0,1fr); gap:10px; padding:11px; border:1px solid #e4dde4; border-radius:6px; background:#fff; }
.family-request-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:5px; background:#eee3ef; color:#643182; }
.family-request-icon svg { width:17px; height:17px; }
.family-request-row header { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.family-request-row header strong { min-width:0; font-size:13px; line-height:1.4; overflow-wrap:anywhere; }
.family-request-row small,.family-request-row time { display:block; color:#777078; font-size:10px; }
.family-request-row p { margin:7px 0; font-size:12px; line-height:1.45; }
.family-music-row { display:grid; grid-template-columns:32px minmax(0,1fr); gap:10px; padding:10px; border:1px solid #e7e1e7; border-radius:6px; background:#fff; }
.family-music-row > span { color:#643182; }
.family-music-row strong,.family-music-row small,.family-music-row time { display:block; overflow-wrap:anywhere; }
.family-music-row strong { font-size:12px; }
.family-music-row small,.family-music-row time { margin-top:3px; color:#777078; font-size:10px; }
.family-music-row p { margin:5px 0; font-size:11px; }
.family-music-row audio { width:100%; height:32px; display:block; margin-top:8px; }
.family-contact-card { border-top:3px solid #643182; }
.family-contact-person { display:grid; grid-template-columns:42px minmax(0,1fr); align-items:center; gap:11px; margin:17px 0 13px; padding:13px 0; border-top:1px solid #e6e0e6; border-bottom:1px solid #e6e0e6; }
.family-contact-person > span { width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:#eee3ef; color:#643182; }
.family-contact-person svg { width:19px; height:19px; }
.family-contact-person strong,.family-contact-person small { display:block; overflow-wrap:anywhere; }
.family-contact-person strong { font-size:13px; }
.family-contact-person small { margin-top:4px; color:#726b73; font-size:10px; line-height:1.45; }
.family-contact-card > a { display:flex; align-items:flex-start; gap:7px; margin-top:9px; color:#59465d; font-size:11px; font-weight:650; text-decoration:none; overflow-wrap:anywhere; }
.family-contact-card > a:hover { color:#643182; }
.family-contact-card > a svg { width:15px; height:15px; flex:0 0 auto; }
.family-empty { grid-column:1/-1; padding:28px 20px; border:1px dashed #d7cbd8; border-radius:6px; background:#faf8fa; text-align:center; }
.family-empty.compact { padding:18px 12px; }
.family-empty strong,.family-empty p { display:block; }
.family-empty p { margin:6px 0 0; color:#766e77; font-size:12px; line-height:1.5; }

@media(max-width:850px){
  body[data-portal="family"] .portal-content { grid-template-columns:1fr; }
  .family-scope-grid,.family-action-grid,.family-upload-grid,.family-appointment-slots { grid-template-columns:1fr; }
  .family-overview-grid,.family-next-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .family-overview-grid article:nth-child(2) { border-right:0; }
  .family-overview-grid article:nth-child(-n+2) { border-bottom:1px solid #e5dfe5; }
}
@media(max-width:560px){
  .family-quick-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .family-quick-nav a:nth-child(2) { border-right:0; }
  .family-quick-nav a:nth-child(-n+2) { border-bottom:1px solid #e6e0e6; }
  .family-overview-grid,.family-next-steps { grid-template-columns:1fr; }
  .family-overview-grid article { border-right:0; border-bottom:1px solid #e5dfe5; }
  .family-overview-grid article:last-child { border-bottom:0; }
  .family-next-steps article { padding-block:8px; }
  .family-document-row { grid-template-columns:34px minmax(0,1fr); }
  .family-document-row .button { grid-column:1/-1; width:100%; }
  .family-urn-arrival { grid-template-columns:42px minmax(0,1fr); align-items:start; padding:18px 16px; }
  .family-urn-arrival > span { width:42px; height:42px; }
  .family-urn-arrival h2 { font-size:19px; }
  .portal-header.memorial-toolbar { align-items:center; flex-wrap:wrap; gap:4px; padding-block:8px; }
  .portal-header.memorial-toolbar .portal-brand { width:100%; justify-content:center; }
  .portal-header.memorial-toolbar .portal-brand img { width:200px; }
  .memorial-header-actions { width:100%; display:grid; grid-template-columns:repeat(4,1fr); gap:3px; }
  .memorial-header-actions button,.memorial-header-actions a { min-width:0; min-height:36px; padding:0 4px; font-size:11px; }
  .memorial-header-actions button { gap:4px; }
  .portal-action-icon { width:16px; height:16px; }
  body[data-portal="memorial"] .memorial-hero { min-height:0; background-position:66% center; }
  .memorial-hero-inner { min-height:0; grid-template-columns:1fr; justify-items:center; gap:22px; padding:34px 0 38px; text-align:center; }
  body[data-portal="memorial"] .memorial-portrait { width:146px; height:146px; }
  body[data-portal="memorial"] .memorial-identity h1 { justify-content:center; font-size:34px; }
  body[data-portal="memorial"] .memorial-identity > p { font-size:14px; }
  .memorial-hero-events { text-align:left; }
  body[data-portal="memorial"] .memorial-identity blockquote { padding:18px 0 0; border-left:0; border-top:2px solid #d7bd7e; font-size:18px; }
  .memorial-tabs { min-height:54px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; overflow:visible; padding-inline:8px; }
  .memorial-tabs button { min-width:0; padding-inline:3px; font-size:11px; white-space:nowrap; }
  .memorial-content-shell { width:calc(100% - 28px); }
  .life-story h2,.memorial-panel-heading h2 { font-size:29px; }
  .life-story p { font-size:16px; }
  .memorial-callout { padding-left:20px; }
  body[data-portal="memorial"] .memory-grid { grid-template-columns:1fr; }
  .memorial-panel-heading { align-items:flex-start; flex-direction:column; }
  .qr-dialog,.tribute-dialog { width:calc(100% - 16px); max-height:calc(100vh - 16px); }
  .qr-dialog-shell,.tribute-dialog-shell { max-height:calc(100vh - 16px); }
  .qr-dialog-shell > header,.tribute-dialog-shell > header { padding:18px 18px 14px; }
  .qr-dialog-shell > header h2,.tribute-dialog-shell > header h2 { font-size:23px; }
  .qr-dialog-content,.tribute-dialog-canvas { padding:10px; }
  .qr-dialog-content img { max-height:calc(100vh - 355px); }
  .qr-dialog-shell > footer { padding:12px 16px 16px; }
  .qr-dialog-shell > footer > div { grid-template-columns:1fr; }
  .tribute-dialog-shell > footer { padding:12px 16px 16px; }
}

/* Modern public memorial page */
body[data-portal="memorial"] { background:#fbfafb; }
.portal-header.memorial-toolbar { position:sticky; top:0; z-index:8; border-bottom-color:#e8e3e8; background:rgba(255,255,255,.97); box-shadow:0 4px 22px rgba(47,41,49,.05); backdrop-filter:blur(12px); }
.portal-header.memorial-toolbar .portal-brand img { width:250px; }
.memorial-header-actions button,.memorial-header-actions a { min-height:42px; border-radius:5px; }
.memorial-header-actions a { gap:6px; }
.memorial-header-actions a .portal-action-icon { width:17px; }
body[data-portal="memorial"] .memorial-hero { min-height:520px; background-position:center 43%; }
body[data-portal="memorial"] .memorial-hero::before { background:rgba(38,27,40,.69); }
body[data-portal="memorial"] .memorial-hero::after { content:""; position:absolute; z-index:3; right:0; bottom:0; left:0; height:4px; background:#c5a36a; }
.memorial-hero-inner { min-height:520px; grid-template-columns:220px minmax(0,1fr); gap:58px; padding:58px 0 54px; }
.memorial-portrait-wrap { display:grid; justify-items:center; gap:16px; }
.memorial-portrait-wrap > span { color:#e6dce7; font-family:Georgia,serif; font-size:13px; font-style:italic; }
body[data-portal="memorial"] .memorial-portrait { width:208px; height:208px; border:6px solid #fff; box-shadow:0 0 0 1px rgba(215,189,126,.75),0 24px 58px rgba(0,0,0,.32); }
body[data-portal="memorial"] .portal-eyebrow { color:#e1c98f; font-size:12px; }
.memorial-name-row { display:flex; align-items:flex-end; flex-wrap:wrap; gap:14px 18px; }
body[data-portal="memorial"] .memorial-identity h1 { margin:11px 0 0; font-size:54px; line-height:1.04; }
.memorial-birth-name { display:block; margin-top:7px; color:#d8ceda; font-family:Georgia,serif; font-size:17px; font-style:italic; }
.memorial-age { margin-bottom:6px; padding:5px 9px; border:1px solid rgba(255,255,255,.26); border-radius:3px; color:#eee8ef; font-size:13px; font-weight:600; }
.memorial-life-dates { display:flex; align-items:center; gap:18px; margin-top:18px; color:#fff; }
.memorial-life-dates span { display:grid; gap:3px; }
.memorial-life-dates small { color:#cdbfd0; font-size:9px; font-weight:700; text-transform:uppercase; }
.memorial-life-dates strong { font-family:Georgia,serif; font-size:16px; font-weight:400; }
.memorial-life-dates i { width:26px; height:1px; background:#c5a36a; }
.memorial-hero-events { width:min(840px,100%); gap:10px; overflow:visible; margin-top:27px; border:0; border-radius:0; background:transparent; backdrop-filter:none; }
.memorial-hero-events article { display:grid; grid-template-columns:38px minmax(0,1fr); gap:13px; padding:16px 17px; border:1px solid rgba(255,255,255,.2); border-radius:6px; background:rgba(47,35,49,.58); backdrop-filter:blur(9px); }
.memorial-event-icon { width:36px; height:36px; display:grid !important; place-items:center; border:1px solid rgba(225,201,143,.48); border-radius:50%; color:#e1c98f !important; }
.memorial-event-icon .portal-action-icon { width:17px; height:17px; }
.memorial-hero-events article > div > span { font-size:10px; }
.memorial-hero-events article > div > strong { font-size:14px; line-height:1.35; }
.memorial-hero-events article > div > small { display:flex; align-items:flex-start; gap:6px; font-size:12px; }
.memorial-hero-events article > div > small .portal-action-icon { width:14px; height:14px; flex:0 0 auto; margin-top:1px; color:#d9bd7c; }
.memorial-event-copy > span { color:#d8bedb; font-size:9px !important; font-weight:800; text-transform:uppercase; }
.memorial-hero-events .memorial-event-weekday { margin-top:5px; color:#fff; font-family:Georgia,serif; font-size:20px; font-weight:500; line-height:1.15; }
.memorial-event-copy > time { display:block; margin-top:3px; color:#f5f0f5; font-size:13px; font-weight:700; line-height:1.35; }
.memorial-event-place { margin-top:13px; padding-top:10px; border-top:1px solid rgba(255,255,255,.14); }
.memorial-event-place b { display:block; color:#fff; font-size:12px; line-height:1.4; }
.memorial-event-place small { display:flex !important; align-items:flex-start; gap:6px; margin-top:4px !important; color:#ddd4df; font-size:11px !important; line-height:1.45; }
.memorial-event-place small .portal-action-icon { width:14px; height:14px; flex:0 0 auto; margin-top:1px; color:#d9bd7c; }
body[data-portal="memorial"] .memorial-identity blockquote { max-width:860px; margin-top:27px; padding-left:22px; border-left-color:#d8bc78; font-size:21px; }
.memorial-tabs { min-height:68px; gap:22px; box-shadow:0 5px 20px rgba(47,41,49,.04); }
.memorial-tabs button { position:relative; display:flex; align-items:center; gap:10px; padding:0 8px; border-bottom:0; font-size:14px; }
.memorial-tabs button::after { content:""; position:absolute; right:0; bottom:0; left:0; height:3px; background:transparent; }
.memorial-tabs button.active::after { background:var(--primary); }
.memorial-tab-icon { width:34px; height:34px; display:grid; flex:0 0 auto; place-items:center; border:1px solid #ddcfdf; border-radius:50%; background:#f8f2f8; color:var(--primary); transition:background .18s ease,color .18s ease,border-color .18s ease; }
.memorial-tab-icon .portal-action-icon { width:17px; height:17px; }
.memorial-tab-copy { display:flex; align-items:center; gap:7px; }
.memorial-tab-copy small { min-width:21px; height:21px; display:grid; place-items:center; padding:0 5px; border-radius:50%; background:#eee8ef; color:#665e67; font-size:10px; font-weight:700; }
.memorial-tabs button:hover .memorial-tab-icon { border-color:#caaece; background:#f3e8f4; }
.memorial-tabs button.active .memorial-tab-icon { border-color:var(--primary); background:var(--primary); color:#fff; box-shadow:0 0 0 3px #f1e8f2; }
.memorial-tabs button.active .memorial-tab-copy small { background:#eadbec; color:var(--primary); }
.memorial-content-shell { width:min(1140px,calc(100% - 56px)); }
.memorial-tab-panel { padding:58px 0 32px; }
.memorial-story-layout,.memorial-panel-layout { grid-template-columns:minmax(0,1.45fr) minmax(340px,.7fr); gap:76px; }
.life-story { max-width:700px; }
.life-story > span,.memorial-callout > span,.memorial-form-pane > span,.memorial-panel-heading span { font-size:12px; }
.life-story h2,.memorial-panel-heading h2 { margin-top:10px; font-size:39px; line-height:1.15; }
.life-story p { margin-top:28px; color:#4e474f; font-size:18px; line-height:1.9; }
.life-story p::first-letter { float:left; margin:7px 8px 0 0; color:var(--primary); font-family:Georgia,serif; font-size:52px; line-height:.72; }
.memorial-callout { padding:10px 0 10px 32px; border-left-color:#c5a36a; }
.memorial-callout h3,.memorial-form-pane h2 { margin-top:9px; font-size:28px; }
.memorial-callout p,.memorial-form-pane > p { font-size:15px; line-height:1.65; }
.memorial-callout .button { gap:8px; min-height:44px; padding-inline:18px; }
.memorial-callout .button .portal-action-icon { width:17px; height:17px; }
.memorial-callout > div { margin-top:30px; }
.memorial-callout > div small { font-size:13px; }
.memorial-form-pane { padding:30px; border-radius:7px; box-shadow:0 18px 44px rgba(49,39,50,.08); }
body[data-portal="memorial"] .field { margin-top:16px; }
body[data-portal="memorial"] .field label { margin-bottom:7px; font-size:11px; }
body[data-portal="memorial"] .field input,body[data-portal="memorial"] .field select,body[data-portal="memorial"] .field textarea { min-height:44px; padding:10px 12px; border-radius:4px; font-size:14px; }
body[data-portal="memorial"] .field textarea { min-height:120px; }
.memorial-counts > span { min-width:62px; padding:6px 10px; font-size:12px; }
.memorial-counts img { width:24px; height:29px; }
body[data-portal="memorial"] .memorial-entry { grid-template-columns:82px minmax(0,1fr); gap:19px; padding:25px 0; }
body[data-portal="memorial"] .memorial-entry > .memorial-symbol-visual { width:76px; height:76px; }
body[data-portal="memorial"] .memorial-entry header strong { font-size:14px; }
body[data-portal="memorial"] .memorial-entry time { font-size:11px; }
body[data-portal="memorial"] .memorial-entry p { font-size:16px; line-height:1.65; }
body[data-portal="memorial"] .memorial-entry small { font-size:10px; }
body[data-portal="memorial"] .memory-card { border-color:#ded9de; box-shadow:0 10px 28px rgba(49,41,50,.06); }
body[data-portal="memorial"] .memory-card > div { padding:18px; }
body[data-portal="memorial"] .memory-card span { font-size:10px; }
body[data-portal="memorial"] .memory-card h3 { font-size:21px; }
body[data-portal="memorial"] .memory-card p { font-size:13px; line-height:1.65; }
body[data-portal="memorial"] .memory-card time { font-size:11px; }
.memorial-print-heading { align-items:flex-end; }
.memorial-print-heading > p { max-width:320px; margin:0; color:#756d76; font-size:13px; line-height:1.5; text-align:right; }
.memorial-print-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:28px; }
.memorial-print-card { min-width:0; overflow:hidden; border:1px solid #ded8de; border-radius:6px; background:#fff; box-shadow:0 12px 32px rgba(48,39,49,.07); }
.memorial-print-card > button { width:100%; height:330px; position:relative; display:grid; place-items:center; overflow:hidden; padding:20px; border:0; border-bottom:1px solid #e2dde2; background:#eeebed; cursor:zoom-in; }
.memorial-print-preview { width:100%; height:100%; display:grid; place-items:center; overflow:hidden; }
.memorial-print-preview .family-print-document { width:100%; }
.memorial-print-preview .family-print-document-page:not(:first-child),.memorial-print-preview .family-print-page-label { display:none; }
.memorial-print-preview .family-print-sheet { width:min(290px,96%); box-shadow:0 12px 30px rgba(44,35,45,.17); }
.memorial-print-preview .family-print-document.single .family-print-sheet { width:min(205px,80%); }
.memorial-print-preview .family-print-copy { padding:12px; }
.memorial-print-preview .family-print-copy h3 { margin:5px 0 7px; font-size:15px; }
.memorial-print-preview .family-print-copy > strong { font-size:12px; }
.memorial-print-preview .family-print-copy > small { font-size:7px; }
.memorial-print-preview .family-print-copy blockquote { margin-top:7px; font-size:8px; }
.memorial-print-preview .family-print-body { margin-top:7px; font-size:7px; }
.memorial-print-preview .family-print-ceremony,.memorial-print-preview .family-print-footer { font-size:7px; }
.memorial-print-zoom { position:absolute; right:12px; bottom:12px; display:inline-flex; align-items:center; gap:6px; padding:7px 10px; border-radius:4px; background:rgba(47,41,49,.9); color:#fff; font-size:10px; opacity:0; transform:translateY(4px); transition:opacity .18s ease,transform .18s ease; }
.memorial-print-zoom .portal-action-icon { width:14px; height:14px; }
.memorial-print-card > button:hover .memorial-print-zoom,.memorial-print-card > button:focus-visible .memorial-print-zoom { opacity:1; transform:translateY(0); }
.memorial-print-card-copy { display:grid; gap:5px; padding:16px 17px 18px; }
.memorial-print-card-copy > span { color:var(--primary); font-size:10px; font-weight:700; text-transform:uppercase; }
.memorial-print-card-copy > strong { overflow:hidden; color:#403741; font-family:Georgia,serif; font-size:19px; font-weight:500; text-overflow:ellipsis; white-space:nowrap; }
.memorial-print-card-copy > small { color:#756d76; font-size:11px; }
.memorial-print-section > p { margin:10px 0 0; color:#6d666e; line-height:1.6; }
.memorial-print-dialog { width:min(1100px,calc(100% - 32px)); }
.memorial-print-dialog-body { display:grid; place-items:center; overflow:auto; padding:30px; background:#ebe8ea; }
.memorial-print-dialog-body .family-print-document { width:min(900px,100%); }
.memorial-print-dialog-body .family-print-sheet { width:min(780px,100%); }
.memorial-print-dialog-body .family-print-document.single .family-print-sheet { width:min(470px,100%); }
.memorial-print-dialog-body .family-print-page-label { margin-top:8px; }

@media(max-width:900px){
  .portal-header.memorial-toolbar .portal-brand img { width:220px; }
  .memorial-hero-inner { width:calc(100% - 40px); grid-template-columns:166px minmax(0,1fr); gap:30px; }
  body[data-portal="memorial"] .memorial-portrait { width:158px; height:158px; }
  body[data-portal="memorial"] .memorial-identity h1 { font-size:42px; }
  .memorial-story-layout,.memorial-panel-layout { grid-template-columns:1fr; gap:42px; }
  .life-story { max-width:none; }
  .memorial-print-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media(max-width:600px){
  .portal-header.memorial-toolbar { position:relative; }
  .portal-header.memorial-toolbar .portal-brand img { width:196px; }
  .memorial-header-actions button,.memorial-header-actions a { min-height:40px; }
  body[data-portal="memorial"] .memorial-hero { background-position:63% center; }
  .memorial-hero-inner { width:calc(100% - 30px); grid-template-columns:1fr; gap:24px; padding:36px 0 40px; }
  body[data-portal="memorial"] .memorial-portrait { width:156px; height:156px; }
  .memorial-portrait-wrap { gap:10px; }
  .memorial-name-row { justify-content:center; gap:10px; }
  body[data-portal="memorial"] .memorial-identity h1 { font-size:35px; }
  .memorial-birth-name { margin-top:5px; font-size:15px; }
  .memorial-age { margin-bottom:2px; }
  .memorial-life-dates { justify-content:center; gap:12px; }
  .memorial-life-dates strong { font-size:14px; }
  .memorial-life-dates i { width:18px; }
  .memorial-hero-events { gap:8px; }
  .memorial-hero-events article { grid-template-columns:34px minmax(0,1fr); gap:11px; padding:14px; text-align:left; }
  .memorial-event-icon { width:32px; height:32px; }
  body[data-portal="memorial"] .memorial-identity blockquote { padding:18px 0 0; border-top:1px solid #d8bc78; border-left:0; font-size:18px; }
  .memorial-tabs { min-height:58px; display:grid; grid-template-columns:repeat(var(--memorial-tab-count,3),minmax(0,1fr)); gap:0; padding-inline:8px; box-shadow:none; }
  .memorial-tabs button { min-height:70px; flex-direction:column; justify-content:center; gap:4px; padding:5px 3px 4px; font-size:10px; }
  .memorial-tab-icon { width:27px; height:27px; }
  .memorial-tab-icon .portal-action-icon { width:14px; height:14px; }
  .memorial-tab-copy { gap:4px; }
  .memorial-tab-copy small { min-width:17px; height:17px; padding-inline:4px; font-size:9px; }
  .memorial-content-shell { width:calc(100% - 30px); }
  .memorial-tab-panel { padding-top:40px; }
  .life-story h2,.memorial-panel-heading h2 { font-size:31px; }
  .life-story p { margin-top:22px; font-size:16px; line-height:1.8; }
  .life-story p::first-letter { font-size:46px; }
  .memorial-callout { padding-left:22px; }
  .memorial-form-pane { padding:22px 18px; }
  .memorial-print-heading { align-items:flex-start; }
  .memorial-print-heading > p { text-align:left; }
  .memorial-print-gallery { grid-template-columns:1fr; gap:16px; }
  .memorial-print-card > button { height:300px; }
  .memorial-print-dialog-body { padding:14px; }
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; }
}

@media(max-width:620px){
  .family-wysiwyg-ribbon{align-items:stretch}
  .family-wysiwyg-ribbon>label,.family-wysiwyg-ribbon>select,.family-wysiwyg-ribbon>.button{width:100%}
  .family-wysiwyg-ribbon select{max-width:100%}
  .family-wysiwyg-ribbon .family-author{min-width:0}
  .family-format-toolbar{max-width:100%;align-items:center;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain}
  .family-tool-group{flex:none;border-right:1px solid #e1dce1;border-bottom:0;padding:0 5px 0 0}
  .family-editor-context{align-items:flex-start;flex-direction:column}
  .family-editor-context .family-snap-controls{width:100%;min-width:0;flex-wrap:wrap;margin-left:0;padding-left:0;border-left:0}
  .draft-preview-toolbar{align-items:stretch;flex-direction:column}
  .draft-preview-toolbar .button{width:100%}
  .draft-preview{padding:14px}
  .family-wysiwyg-workspace{padding:10px}
  .family-print-page-label{width:100%}
}

@media(max-height:620px){
  .tribute-dialog { width:min(920px,calc(100% - 16px)); max-height:calc(100vh - 16px); }
  .tribute-dialog-shell { max-height:calc(100vh - 16px); }
  .tribute-dialog-shell > header { align-items:center; padding:10px 16px; }
  .tribute-dialog-shell > header > div > span,.tribute-dialog-shell > header p { display:none; }
  .tribute-dialog-shell > header h2 { margin:0; font-size:20px; }
  .tribute-dialog-close { width:34px; height:34px; }
  .tribute-dialog-canvas { padding:8px; }
  .tribute-dialog-canvas img { max-height:calc(100vh - 148px); }
  .tribute-dialog-shell > footer { min-height:0; display:flex; align-items:center; justify-content:center; flex-direction:row; padding:8px 16px; }
  .tribute-dialog-shell > footer .button { width:auto; min-height:42px; }
  .tribute-dialog-shell > footer small { display:none; }
}

@media(max-width:560px){.tribute-download-actions{width:100%;display:grid;grid-template-columns:1fr}.tribute-dialog-shell>footer>small{margin-right:0;text-align:center}}
@media(prefers-reduced-motion:reduce){.hero-rotation-layer img{transition:none;transform:none}}

@media(max-width:800px){
  .ceremony-list { grid-template-columns:1fr; }
  .ceremony-list article { grid-template-columns:38px minmax(0,1fr); gap:11px; padding:14px; }
  .ceremony-calendar { width:36px; height:36px; }
}

/* Shared portal brand system 2026 */
:root { --primary:#643182; --primary-dark:#5f2866; --sage:#477168; --gold:#b7904f; --line:#d9dfdd; --muted:#647176; }
body { background:#eef2f1; color:#293438; }
.portal-header { min-height:78px; height:auto; position:relative; z-index:5; padding-block:8px; border-bottom-color:#d8dfdd; box-shadow:0 5px 22px rgba(36,31,38,.05); }
.portal-header:not(.memorial-toolbar) .portal-brand img { width:280px; height:58px; object-fit:contain; object-position:left center; }
.portal-context { padding-left:18px; border-left:1px solid #d8dfdd; }
.portal-context strong,.portal-context span { display:block; }
.portal-context strong { color:#332d35; font-size:14px; }
.portal-context span { margin-top:3px; }
main { width:min(1180px,calc(100% - 40px)); padding-top:34px; }
.search-intro { min-height:360px; border-bottom-color:var(--gold); background-color:#332d35; background-size:285px auto; }
.search-intro h1 { font-size:52px; }
.memorial-result-grid { overflow:hidden; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:0 12px 36px rgba(42,50,48,.06); }
.memorial-result { min-height:124px; }
.memorial-result:hover { background:#f7f1f7; }
.portal-hero { min-height:220px; padding:42px; border-bottom:4px solid var(--gold); background:#3a303c; }
.portal-hero::after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(48,37,50,.94),rgba(48,37,50,.7) 58%,rgba(48,37,50,.18)); pointer-events:none; }
.portal-hero h1 { font-size:42px; }
.portal-hero-botanical { width:660px; opacity:.34; }
.portal-content { gap:22px; margin-top:22px; }
.portal-section { border-color:#d7dddb; border-radius:8px; box-shadow:0 10px 28px rgba(42,50,48,.045); }
.portal-section h2 { color:#332d35; font-size:24px; }
.portal-section > p { color:#647176; font-size:13px; line-height:1.65; }
.portal-process { border-radius:8px; background:#fff; box-shadow:0 8px 24px rgba(42,50,48,.04); }
.portal-process span { font-size:12px; }

/* Trauerdruckportal: klar getrennte Produktbereiche */
.print-category-tabs {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:0 0 18px;
}
.print-category-tabs button {
  min-width:0;
  min-height:82px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  align-items:center;
  gap:11px;
  padding:13px;
  border:1px solid #d8d1d9;
  border-radius:8px;
  background:#fff;
  color:#4c454d;
  font:inherit;
  text-align:left;
  cursor:pointer;
  box-shadow:0 7px 20px rgba(45,35,47,.045);
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background-color .18s ease;
}
.print-category-tabs button:hover {
  border-color:#b89fbb;
  box-shadow:0 11px 25px rgba(76,50,80,.09);
  transform:translateY(-1px);
}
.print-category-tabs button:focus-visible {
  outline:3px solid rgba(128,52,137,.24);
  outline-offset:2px;
}
.print-category-tabs button.active {
  border-color:#643182;
  background:#faf6fb;
  box-shadow:inset 0 -3px 0 #643182,0 10px 24px rgba(93,54,98,.1);
}
.print-category-tabs button > span:not(.print-category-icon) {
  min-width:0;
  display:grid;
  gap:4px;
}
.print-category-tabs strong {
  color:#29232b;
  font-size:14px;
  line-height:1.2;
}
.print-category-tabs small {
  overflow:hidden;
  color:#777078;
  font-size:10px;
  line-height:1.35;
  text-overflow:ellipsis;
}
.print-category-tabs button > b {
  min-width:23px;
  height:23px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#eee8ef;
  color:#6d496f;
  font-size:10px;
}
.print-category-tabs button.active > b { background:#643182; color:#fff; }
.print-category-icon {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:7px;
  background:#f1e8f2;
  color:#643182;
}
.print-category-tabs button:nth-child(2) .print-category-icon { background:#f5eee1; color:#8b6730; }
.print-category-tabs button:nth-child(3) .print-category-icon { background:#e9f0ed; color:#486a5b; }
.print-category-icon .portal-action-icon { width:20px; height:20px; }
#print-category-panel > .portal-section,
#print-category-panel > .portal-process { animation:print-category-in .22s ease both; }
@keyframes print-category-in {
  from { opacity:0; transform:translateY(5px); }
  to { opacity:1; transform:translateY(0); }
}
@media(max-width:760px) {
  .print-category-tabs { grid-template-columns:1fr; gap:7px; }
  .print-category-tabs button { min-height:66px; grid-template-columns:38px minmax(0,1fr) auto; padding:10px 12px; }
  .print-category-icon { width:38px; height:38px; }
}

/* Abmeldeportal */
.portal-sr-only { width:1px!important; height:1px!important; position:absolute!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; }
body[data-portal="deregistration"] .portal-hero { background:#463548; }
body[data-portal="deregistration"] .portal-content { grid-template-columns:minmax(0,1.9fr) minmax(270px,.62fr); }
.dereg-overview { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); overflow:hidden; margin-bottom:12px; border:1px solid #d9dfdd; border-radius:8px; background:#fff; box-shadow:0 8px 24px rgba(42,50,48,.045); }
.dereg-overview article { min-width:0; display:flex; align-items:center; gap:11px; padding:14px 15px; border-right:1px solid #e3e7e5; }
.dereg-overview article:last-child { border-right:0; }
.dereg-overview article > span { width:36px; height:36px; display:grid; flex:0 0 36px; place-items:center; border-radius:6px; background:#f0e8f1; color:var(--primary); }
.dereg-overview article:nth-child(2) > span { background:#e6f1ed; color:#39705e; }
.dereg-overview article:nth-child(3) > span { background:#f8f0e1; color:#886728; }
.dereg-overview article:nth-child(4) > span { background:#e8eef3; color:#4e6677; }
.dereg-overview svg { width:18px; height:18px; }
.dereg-overview article > div { min-width:0; display:grid; gap:2px; }
.dereg-overview small { overflow:hidden; color:#6c7779; font-size:10px; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.dereg-overview strong { color:#2c3334; font-size:21px; line-height:1; }
.dereg-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-bottom:18px; border:1px solid #d8dddb; border-radius:8px; background:#fff; box-shadow:0 7px 20px rgba(45,35,47,.035); }
.dereg-tabs button { min-width:0; min-height:54px; display:flex; align-items:center; justify-content:center; gap:8px; padding:10px 14px; border:0; border-right:1px solid #e0e4e2; background:transparent; color:#667174; font:inherit; font-size:12px; font-weight:650; cursor:pointer; }
.dereg-tabs button:last-child { border-right:0; }
.dereg-tabs button.active { box-shadow:inset 0 -3px 0 var(--primary); color:var(--primary); background:#fbf8fb; }
.dereg-tabs button:focus-visible { outline:3px solid rgba(128,52,137,.22); outline-offset:-3px; }
.dereg-tabs svg { width:17px; height:17px; }
.dereg-tabs b { min-width:21px; height:21px; display:grid; place-items:center; border-radius:50%; background:#edf0ef; color:#667174; font-size:9px; }
.dereg-tabs button.active b { background:var(--primary); color:#fff; }
.dereg-tab-panel[hidden] { display:none; }
.dereg-tab-panel.active { animation:print-category-in .2s ease both; }
.dereg-create-section > .section-heading { margin-bottom:22px; }
.dereg-category-fieldset,.dereg-document-choices { min-width:0; margin:0; padding:0; border:0; }
.dereg-category-fieldset > legend,.dereg-document-choices > legend { margin-bottom:9px; color:#526166; font-size:11px; font-weight:700; text-transform:uppercase; }
.dereg-category-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.dereg-category-grid button { min-width:0; min-height:105px; display:grid; grid-template-rows:34px auto auto; align-content:start; gap:5px; padding:12px 10px; border:1px solid #d8dedd; border-radius:7px; background:#fff; color:#526064; font:inherit; text-align:left; cursor:pointer; transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease; }
.dereg-category-grid button:hover { border-color:#a990ac; box-shadow:0 7px 18px rgba(73,48,77,.08); }
.dereg-category-grid button.active { border-color:var(--primary); background:#faf6fb; box-shadow:inset 0 -3px 0 var(--primary); }
.dereg-category-grid button > span { width:32px; height:32px; display:grid; place-items:center; border-radius:6px; background:#f0e8f1; color:var(--primary); }
.dereg-category-grid button:nth-child(4n+2) > span { background:#f6efe1; color:#876526; }
.dereg-category-grid button:nth-child(4n+3) > span { background:#e8f1ee; color:#477168; }
.dereg-category-grid button:nth-child(4n+4) > span { background:#e9eef2; color:#536b7b; }
.dereg-category-grid svg { width:17px; height:17px; }
.dereg-category-grid strong { overflow-wrap:anywhere; color:#30383a; font-size:11px; line-height:1.25; }
.dereg-category-grid small { color:#7b8587; font-size:9px; line-height:1.3; }
.dereg-recipient-block,.dereg-details-block,.dereg-insurance-options { margin-top:24px; padding-top:20px; border-top:1px solid #dfe4e2; }
.dereg-block-heading { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.dereg-block-heading > span { width:34px; height:34px; display:grid; flex:0 0 34px; place-items:center; border-radius:6px; background:#edf3f1; color:var(--sage); }
.dereg-block-heading svg { width:17px; height:17px; }
.dereg-block-heading > div { display:grid; gap:2px; }
.dereg-block-heading strong { color:#30383a; font-size:13px; }
.dereg-block-heading small { color:#758083; font-size:10px; }
.dereg-search-input { position:relative; }
.dereg-search-input svg { width:17px; height:17px; position:absolute; z-index:1; top:13px; left:13px; color:#7b8587; pointer-events:none; }
.dereg-search-input input { width:100%; padding-left:40px; }
.dereg-insurance-options { padding:20px; border:1px solid #ded2df; border-left:4px solid var(--primary); border-radius:7px; background:#fbf8fb; }
.dereg-insurance-options .dereg-block-heading { margin-bottom:16px; }
.dereg-payout-toggle { display:grid; grid-template-columns:40px minmax(0,1fr); align-items:center; gap:11px; margin-bottom:14px; cursor:pointer; }
.dereg-payout-toggle > input { position:absolute; opacity:0; }
.dereg-payout-toggle > span { width:38px; height:22px; position:relative; border-radius:11px; background:#bcc6c4; transition:background .16s ease; }
.dereg-payout-toggle > span::after { content:""; width:16px; height:16px; position:absolute; top:3px; left:3px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.18); transition:transform .16s ease; }
.dereg-payout-toggle > input:checked + span { background:var(--primary); }
.dereg-payout-toggle > input:checked + span::after { transform:translateX(16px); }
.dereg-payout-toggle > input:focus-visible + span { outline:3px solid rgba(128,52,137,.24); outline-offset:2px; }
.dereg-payout-toggle > div { display:grid; gap:3px; }
.dereg-payout-toggle strong { color:#3d3440; font-size:12px; }
.dereg-payout-toggle small { color:#756d77; font-size:10px; line-height:1.4; }
.dereg-document-choices { display:grid; gap:7px; margin-top:15px; }
.dereg-document-choices label { min-width:0; display:grid; grid-template-columns:18px 22px minmax(0,1fr); align-items:center; gap:8px; padding:9px 10px; border:1px solid #e0d9e1; border-radius:5px; background:#fff; cursor:pointer; }
.dereg-document-choices input { width:16px; height:16px; accent-color:var(--primary); }
.dereg-document-choices label > span:nth-of-type(1) { color:var(--sage); }
.dereg-document-choices label > span:last-child { min-width:0; display:grid; gap:2px; }
.dereg-document-choices strong { overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.dereg-document-choices small { color:#7b8587; font-size:9px; }
.dereg-missing-documents { display:flex; align-items:flex-start; gap:10px; margin-top:14px; padding:12px; background:#f4f1f4; color:#655b67; }
.dereg-missing-documents > span { color:var(--primary); }
.dereg-missing-documents strong,.dereg-missing-documents small { display:block; }
.dereg-missing-documents small { margin-top:3px; font-size:10px; line-height:1.4; }
.dereg-submit-summary { display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:12px; margin-top:22px; padding:15px; border:1px solid #d8e2df; border-radius:7px; background:#f2f7f5; }
.dereg-submit-summary > span { width:40px; height:40px; display:grid; place-items:center; border-radius:7px; background:#dfece7; color:#40675c; }
.dereg-submit-summary > span.automatic { background:#e9ddec; color:var(--primary); }
.dereg-submit-summary > span svg { width:19px; height:19px; }
.dereg-submit-summary > div { min-width:0; }
.dereg-submit-summary small,.dereg-submit-summary strong { display:block; }
.dereg-submit-summary small { color:#557068; font-size:9px; font-weight:700; text-transform:uppercase; }
.dereg-submit-summary strong { margin-top:2px; overflow:hidden; color:#30423d; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.dereg-submit-summary p { margin:4px 0 0; color:#60726d; font-size:10px; line-height:1.4; }
.dereg-submit-summary em { display:block; margin-top:7px; color:#8a642a; font-size:10px; font-style:normal; font-weight:650; }
.dereg-submit-summary .button { white-space:nowrap; }
.dereg-submit-summary .button svg { width:16px; height:16px; }
.dereg-history-filters { display:flex; flex-wrap:wrap; gap:7px; margin:18px 0 14px; }
.dereg-history-filters button { display:inline-flex; align-items:center; gap:7px; min-height:34px; padding:7px 10px; border:1px solid #d7dddb; border-radius:5px; background:#fff; color:#647174; font:inherit; font-size:10px; font-weight:650; cursor:pointer; }
.dereg-history-filters button.active { border-color:var(--primary); background:#f3eaf4; color:var(--primary); }
.dereg-history-filters b { min-width:18px; height:18px; display:grid; place-items:center; border-radius:9px; background:#eef1f0; font-size:8px; }
.dereg-history-filters button.active b { background:var(--primary); color:#fff; }
.dereg-history-list { display:grid; gap:10px; }
.dereg-history-card { padding:15px; border:1px solid #dce2e0; border-radius:7px; background:#fff; }
.dereg-history-card[hidden] { display:none; }
.dereg-history-card > header { display:grid; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:10px; }
.dereg-history-icon { width:36px; height:36px; display:grid; place-items:center; border-radius:6px; background:#e6f1ed; color:#39705e; }
.dereg-history-icon.team { background:#f7efe0; color:#886728; }
.dereg-history-icon svg { width:17px; height:17px; }
.dereg-history-card header > div { min-width:0; }
.dereg-history-card header small { color:var(--primary); font-size:9px; font-weight:700; text-transform:uppercase; }
.dereg-history-card h3 { margin:2px 0 0; overflow:hidden; color:#30383a; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.dereg-history-card dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:14px 0 0; padding:11px 0 0; border-top:1px solid #e4e8e7; }
.dereg-history-card dl div { min-width:0; }
.dereg-history-card dt { color:#7a8587; font-size:8px; font-weight:700; text-transform:uppercase; }
.dereg-history-card dd { margin:3px 0 0; overflow:hidden; color:#465255; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.dereg-history-card > p { margin:10px 0 0; padding:9px 10px; background:#f6f7f6; color:#667174; font-size:10px; line-height:1.45; }
.dereg-document-count { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:#eee4ef; color:var(--primary); font-size:12px; font-weight:700; }
.dereg-side-status h2 { margin-bottom:16px; }
.dereg-side-progress { display:grid; grid-template-columns:34px minmax(0,1fr); align-items:center; gap:10px; padding:11px 0; border-top:1px solid #e2e6e4; }
.dereg-side-progress > span { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; background:#f3ecdf; color:#886728; }
.dereg-side-progress > span.done { background:#e3f0eb; color:#39705e; }
.dereg-side-progress svg { width:15px; height:15px; }
.dereg-side-progress strong,.dereg-side-progress small { display:block; }
.dereg-side-progress strong { color:#354043; font-size:12px; }
.dereg-side-progress small { margin-top:2px; color:#7a8487; font-size:9px; }
.dereg-side-security { display:flex; align-items:flex-start; gap:11px; border-left:3px solid var(--primary); background:#faf7fa; }
.dereg-side-security > span { color:var(--primary); }
.dereg-side-security svg { width:20px; height:20px; }
.dereg-side-security strong { font-size:12px; }
.dereg-side-security p { margin:5px 0 0; color:#706873; font-size:10px; line-height:1.5; }
@media(max-width:980px) {
  .dereg-overview { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dereg-overview article:nth-child(2) { border-right:0; }
  .dereg-overview article:nth-child(-n+2) { border-bottom:1px solid #e3e7e5; }
  .dereg-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
  .dereg-overview small { white-space:normal; }
  .dereg-tabs button { min-height:58px; flex-direction:column; gap:3px; padding:7px 4px; font-size:10px; }
  .dereg-tabs b { position:absolute; margin:0 0 23px 45px; }
  .dereg-category-grid button { min-height:98px; }
  .dereg-submit-summary { grid-template-columns:38px minmax(0,1fr); }
  .dereg-submit-summary .button { grid-column:1/-1; width:100%; }
  .dereg-history-card dl { grid-template-columns:1fr; }
}
@media(max-width:430px) {
  .dereg-overview { grid-template-columns:1fr; }
  .dereg-overview article { border-right:0; border-bottom:1px solid #e3e7e5; }
  .dereg-overview article:last-child { border-bottom:0; }
  .dereg-category-grid { grid-template-columns:1fr 1fr; }
}
.field label { color:#526166; }
.field input,.field select,.field textarea { min-height:43px; border-color:#c5d0cd; border-radius:5px; font-size:14px; }
.button { min-height:41px; border-radius:5px; }
.button.primary { box-shadow:0 6px 16px rgba(128,52,137,.16); }
.family-scope-group,.family-action-section,.family-status-section { border-radius:8px; }
.family-scope-group:nth-child(2n) > header > span { background:#e8f1ee; color:var(--sage); }
.dereg-row { padding:15px 0; }
.dereg-row small { font-size:11px; }
.dereg-delivery { display:flex; align-items:flex-start; gap:10px; margin-top:12px; padding:11px 12px; border-left:3px solid var(--sage); border-radius:0 5px 5px 0; background:#eef6f3; color:#355f56; }
.dereg-delivery.team { border-left-color:var(--gold); background:#fbf6ec; color:#72551f; }
.dereg-delivery .portal-action-icon { flex:0 0 18px; margin-top:1px; }
.dereg-delivery strong,.dereg-delivery small { display:block; }
.dereg-delivery small { margin-top:3px; color:inherit; line-height:1.45; }
.hidden { display:none!important; }
.field > small { display:block; margin-top:6px; color:var(--muted); font-size:11px; line-height:1.4; }
.dereg-automation-note { display:flex; align-items:flex-start; gap:11px; margin-top:18px; padding:14px; border:1px solid #d6e2de; border-radius:6px; background:#f1f7f5; color:#355f56; }
.dereg-automation-note > span { width:34px; height:34px; display:grid; flex:0 0 34px; place-items:center; border-radius:50%; background:#deece7; }
.dereg-automation-note strong,.dereg-automation-note small { display:block; }
.dereg-automation-note small { margin-top:3px; color:#5b726c; line-height:1.45; }
footer { background:#282329; }

@media(max-width:700px){
  .portal-header:not(.memorial-toolbar) .portal-brand img { width:205px; height:52px; }
  .portal-context { display:none; }
  main { width:calc(100% - 28px); }
  .portal-hero { min-height:190px; padding:28px 24px; }
  .portal-hero h1 { font-size:34px; }
}
.staff-preview-notice { width:min(1180px,calc(100% - 32px)); margin:18px auto 0; display:flex; align-items:flex-start; gap:14px; padding:14px 18px; border:1px solid #d8c6da; border-left:4px solid #643182; background:#fbf8fb; color:#443648; box-sizing:border-box; }
.staff-preview-notice > span { display:grid; place-items:center; flex:0 0 34px; width:34px; height:34px; background:#efe4f0; color:#643182; }
.staff-preview-notice .portal-action-icon { width:19px; height:19px; }
.staff-preview-notice div { display:grid; gap:3px; }
.print-approval-consent { display:flex; align-items:flex-start; gap:10px; margin:18px 0; line-height:1.5; text-transform:none; }
.print-approval-consent input { flex:0 0 20px; width:20px; height:20px; min-height:20px; margin:2px 0 0; accent-color:var(--purple, #643182); }
.dereg-guide { margin-top:18px; }
.dereg-guide summary { cursor:pointer; font-weight:600; padding:8px 0; }
.dereg-guide .form-grid { margin-top:18px; }
.dereg-guide-result { display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:1px solid #ded8e1; padding:14px 0; }
.dereg-guide-result p { margin:4px 0 0; }
@media (max-width:600px) { .dereg-guide-result { align-items:stretch; flex-direction:column; gap:8px; } }
.staff-preview-notice p { margin:0; color:#716875; font-size:13px; line-height:1.45; }
.family-team-response{display:flex;align-items:flex-start;gap:10px;margin-top:11px;padding:11px 12px;border-left:3px solid var(--sage);background:#edf6f3;color:#355f56}.family-team-response>span{width:26px;height:26px;display:grid;flex:0 0 26px;place-items:center;border-radius:50%;background:#d9ebe5}.family-team-response svg{width:14px;height:14px}.family-team-response strong,.family-team-response small{display:block}.family-team-response p{margin:4px 0;white-space:pre-wrap}.family-team-response small{color:#647a74}

/* Trauerbild: Gestaltung wählen */
.tribute-style-switch { display:inline-flex; gap:4px; margin-top:12px; padding:4px; border:1px solid #e6dcec; border-radius:999px; background:#f9f6f8; }
.tribute-style-switch button { min-height:32px; padding:0 14px; border:0; border-radius:999px; background:transparent; color:#4e2555; font-size:12.5px; font-weight:600; cursor:pointer; }
.tribute-style-switch button[aria-pressed="true"] { background:#643182; color:#fff; box-shadow:0 6px 14px rgba(100,49,130,.24); }
.tribute-style-switch button:disabled { opacity:.6; cursor:wait; }

/* Sprungmarke „Zum Inhalt“ (Barrierefreiheit) */
.skip-link { position:fixed; top:-80px; left:16px; z-index:300; padding:10px 14px; border-radius:8px; background:#fff; color:#643182; font-weight:600; text-decoration:none; box-shadow:0 6px 18px rgba(43,36,50,.18); }
.skip-link:focus { top:12px; outline:3px solid #643182; outline-offset:3px; }
