
.pet-plugin-garden {
    background: var(--sz-surface);
    padding: 12px;
    border-radius: 12px;
    border: 1px solid rgba(var(--sz-text-rgb), 0.08);
    margin: 0 0 2rem 0;
}

.pet-plugin-garden-heading {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.4rem;
    margin: 0 0 0.75rem 0;
    color: var(--sz-accent);
}

.pet-plugin-garden-public-state {
    font-size: 14px;
    color: rgba(var(--sz-accent-rgb), 0.7);
    margin: 0 0 0.75rem 0;
}

.pet-plugin-garden-svg-wrap {
    background: var(--sz-bg);
    border: 1px solid rgba(var(--sz-accent-rgb), 0.15);
    border-radius: 8px;
    padding: 0;
    overflow: hidden;
    line-height: 0;
}

.pet-plugin-garden-svg {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
}

.pet-plugin-garden-svg .pp-garden-flowers,
.pet-plugin-garden-svg .pp-garden-weeds,
.pet-plugin-garden-svg .pp-garden-ground-d {
    transition: opacity 0.6s ease-out;
}

@keyframes pp-garden-flame-flicker {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.88; }
}

.pet-plugin-garden-svg .pp-garden-flame {
    animation: pp-garden-flame-flicker 1.2s ease-in-out infinite;
}

.pet-plugin-garden-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 1rem;
    padding: 8px 14px;
    background: rgba(var(--sz-warn-rgb), 0.12);
    border: 1px solid rgba(var(--sz-warn-rgb), 0.35);
    border-radius: 6px;
    font-size: 0.95rem;
    color: var(--sz-warn-text);
}

.pet-plugin-garden-badge-icon {
    font-size: 1.1em;
}

.pet-plugin-garden-owner-panel {
    margin-top: 1.25rem;
    padding: 1rem 1.25rem;
    background: rgba(var(--sz-accent-rgb), 0.04);
    border-radius: 8px;
    border: 1px solid rgba(var(--sz-accent-rgb), 0.1);
}

.pet-plugin-garden-owner-intro {
    margin: 0 0 0.75rem 0;
    color: var(--sz-muted);
    font-style: italic;
    font-size: 0.95rem;
}

.pet-plugin-garden-status {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

.pet-plugin-garden-pct-label {
    font-weight: 500;
    color: var(--sz-accent);
}

.pet-plugin-garden-grace {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    background: rgba(var(--sz-success-rgb), 0.12);
    border-radius: 4px;
    font-size: 0.85rem;
    color: var(--sz-success);
    cursor: help;
}

.pet-plugin-garden-care-button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
}

.pet-plugin-garden-care-button[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
}

.pet-plugin-garden-care-icon {
    font-size: 1.05em;
}

.pet-plugin-garden-cleanups {
    margin: 0.75rem 0 0 0;
    font-size: 0.85rem;
    color: var(--sz-muted);
}

.pet-plugin-garden-care-button.is-pending {
    pointer-events: none;
    opacity: 0.7;
}

.pet-plugin-garden-care-button.is-pending .pet-plugin-garden-care-text::after {
    content: '…';
}

.pet-plugin-garden-error {
    margin: 0.75rem 0 0 0;
    padding: 8px 12px;
    background: rgba(var(--sz-error-rgb), 0.08);
    border: 1px solid rgba(var(--sz-error-rgb), 0.25);
    border-radius: 4px;
    color: var(--sz-error-text);
    font-size: 0.9rem;
}

@media (max-width: 600px) {
    .pet-plugin-garden-svg-wrap {
        border-radius: 6px;
    }
    .pet-plugin-garden-owner-panel {
        padding: 0.875rem 1rem;
    }
    .pet-plugin-garden-heading {
        font-size: 1.25rem;
    }
}

.pet-plugin-garden-protection-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0.75rem 0;
    padding: 0.5rem 0.875rem;
    background: linear-gradient(to right, rgba(var(--sz-success-rgb), 0.12), rgba(var(--sz-success-rgb), 0.05));
    border: 1px solid rgba(var(--sz-success-rgb), 0.35);
    border-radius: 999px;
    color: var(--sz-success);
    font-size: 0.9rem;
    font-weight: 500;
    cursor: help;
}

.pet-plugin-garden-protection-icon {
    font-size: 1rem;
    line-height: 1;
}

.pet-plugin-garden-protection-text {
    line-height: 1.2;
}

.pet-plugin-garden-kertesz-status {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem 0.6rem;
    margin: 0.75rem 0;
    padding: 0.5rem 0.875rem;
    background: linear-gradient(to right, rgba(var(--sz-success-rgb), 0.12), rgba(var(--sz-success-rgb), 0.05));
    border: 1px solid rgba(var(--sz-success-rgb), 0.35);
    border-radius: 999px;
    color: var(--sz-success);
    font-size: 0.9rem;
    font-weight: 500;
}

.pet-plugin-garden-kertesz-icon {
    font-size: 1rem;
    line-height: 1;
}

.pet-plugin-garden-kertesz-text {
    line-height: 1.2;
}

.pet-plugin-garden-kertesz-tenure {
    line-height: 1.2;
    font-size: 0.85rem;
    font-weight: 400;
    color: rgba(var(--sz-success-rgb), 0.7);
}

@media (max-width: 480px) {
    .pet-plugin-garden-kertesz-status {
        border-radius: 12px;
    }
    .pet-plugin-garden-kertesz-tenure {
        flex-basis: 100%;
        margin-left: 1.4rem;
    }
}

.pet-plugin-garden-protection-owner-list {
    margin: 1rem 0 0 0;
    padding: 0.875rem 1rem;
    background: rgba(var(--sz-success-rgb), 0.06);
    border-left: 3px solid rgba(var(--sz-success-rgb), 0.4);
    border-radius: 0 6px 6px 0;
}

.pet-plugin-garden-protection-list-heading {
    margin: 0 0 0.5rem 0;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 0.95rem;
    color: var(--sz-success);
    font-weight: 600;
}

.pet-plugin-garden-protection-list-empty {
    margin: 0;
    color: var(--sz-success);
    font-size: 0.85rem;
    font-style: italic;
}

.pet-plugin-garden-protection-list {
    margin: 0;
    padding: 0;
    font-size: 0.875rem;
    color: var(--sz-success-text);
    list-style: none;
}

.pet-plugin-garden-protection-list-entry {
    padding: 0.2rem 0;
    line-height: 1.4;
}

.pet-plugin-eternal-candles {
    margin: 2rem 0;
    padding: 1.5rem 1.25rem;
    background: linear-gradient(to bottom, rgba(var(--sz-text-rgb), 0.04), rgba(var(--sz-text-rgb), 0.02));
    border: 1px solid rgba(var(--sz-accent-rgb), 0.12);
    border-radius: 12px;
}

.pet-plugin-eternal-candles-heading {
    margin: 0 0 0.5rem 0;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.3rem;
    color: var(--sz-accent);
    font-weight: 500;
}

.pet-plugin-eternal-candles-intro {
    margin: 0 0 1rem 0;
    color: var(--sz-muted);
    font-size: 0.9rem;
    font-style: italic;
}

.pet-plugin-eternal-candles-grid {
    display: flex;
    flex-wrap: nowrap;
    gap: 1.25rem;
    align-items: flex-start;
    margin: 1rem 0;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
    padding-bottom: 12px;
    scroll-padding-inline: 8px;
    scrollbar-width: thin;
    scrollbar-color: rgba(var(--sz-accent-rgb), 0.3) rgba(var(--sz-accent-rgb), 0.06);
}

.pet-plugin-eternal-candles-grid::-webkit-scrollbar {
    height: 6px;
}
.pet-plugin-eternal-candles-grid::-webkit-scrollbar-track {
    background: rgba(var(--sz-accent-rgb), 0.06);
    border-radius: 3px;
}
.pet-plugin-eternal-candles-grid::-webkit-scrollbar-thumb {
    background: rgba(var(--sz-accent-rgb), 0.28);
    border-radius: 3px;
}
.pet-plugin-eternal-candles-grid::-webkit-scrollbar-thumb:hover {
    background: rgba(var(--sz-accent-rgb), 0.45);
}

.pet-plugin-eternal-candles-grid:focus-visible {
    outline: 2px solid rgba(var(--sz-accent-rgb), 0.4);
    outline-offset: 4px;
    border-radius: 4px;
}

.pet-plugin-eternal-candle {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 0 0 auto;
    max-width: 140px;
}

.pet-plugin-eternal-candle-svg-wrap {
    width: 60px !important;
    height: 80px !important;
    margin-bottom: 0.5rem;
    border-radius: 9px !important;
    padding: 4px 0 !important;
}

.pet-plugin-eternal-candle-svg-wrap svg {
    width: 100%;
    height: 100%;
    display: block;
}

.pet-plugin-eternal-candle-info {
    text-align: center;
    font-size: 0.85rem;
    line-height: 1.4;
}

.pet-plugin-eternal-candle-donor {
    font-weight: 600;
    color: var(--sz-accent);
    margin-bottom: 0.15rem;
}

.pet-plugin-eternal-candle-date {
    color: var(--sz-soft);
    font-size: 0.75rem;
}

.pet-plugin-eternal-candle-message {
    margin-top: 0.4rem;
    color: var(--sz-muted);
    font-style: italic;
    font-size: 0.8rem;
    word-wrap: break-word;
    max-width: 130px;
}

.pet-plugin-eternal-candle-overflow {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 80px;
    flex: 0 0 auto;
    border: 2px dashed rgba(var(--sz-accent-rgb), 0.25);
    border-radius: 8px;
    background: rgba(var(--sz-accent-rgb), 0.04);
}

.pet-plugin-eternal-candle-overflow-icon {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--sz-accent);
    line-height: 1;
}

.pet-plugin-eternal-candle-overflow-label {
    font-size: 0.65rem;
    color: var(--sz-muted);
    margin-top: 0.3rem;
    text-align: center;
    padding: 0 0.25rem;
}

.pet-plugin-eternal-candles-count-summary {
    margin: 1rem 0 0 0;
    text-align: right;
    color: var(--sz-soft);
    font-size: 0.8rem;
    font-style: italic;
}

@media (max-width: 600px) {
    .pet-plugin-eternal-candles {
        padding: 1.25rem 1rem;
    }
    .pet-plugin-eternal-candles-grid {
        gap: 1rem;
    }
    .pet-plugin-eternal-candle {
        max-width: 100px;
    }
}

.pp-garden-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
    align-items: center;
}

.pp-garden-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.2;
    border: 1px solid transparent;
}

.pp-garden-badge-icon {
    font-size: 0.85rem;
    line-height: 1;
}

.pp-garden-badge-text {
    line-height: 1.2;
}

.pp-garden-badge-pct.pp-garden-pct-low {
    background: rgba(var(--sz-success-rgb), 0.12);
    border-color: rgba(var(--sz-success-rgb), 0.35);
    color: var(--sz-success);
}

.pp-garden-badge-pct.pp-garden-pct-mid {
    background: rgba(var(--sz-warn-rgb), 0.14);
    border-color: rgba(var(--sz-warn-rgb), 0.40);
    color: var(--sz-warn-text);
}

.pp-garden-badge-pct.pp-garden-pct-high {
    background: rgba(var(--sz-error-rgb), 0.12);
    border-color: rgba(var(--sz-error-rgb), 0.40);
    color: var(--sz-error-text);
}

.pp-garden-badge-eternal {
    background: rgba(var(--sz-gold-rgb), 0.14);
    border-color: rgba(var(--sz-gold-rgb), 0.40);
    color: var(--sz-gold-strong);
}

.pp-garden-badge-regular {
    background: rgba(var(--sz-warn-rgb), 0.14);
    border-color: rgba(var(--sz-warn-rgb), 0.40);
    color: var(--sz-warn-text);
}

.pp-memorials-list-wrap {
    margin: 1.5rem 0;
}

.pp-memorials-filter-bar {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
    padding: 1rem;
    background: rgba(var(--sz-accent-rgb), 0.04);
    border: 1px solid rgba(var(--sz-accent-rgb), 0.08);
    border-radius: 8px;
}

.pp-memorials-search {
    display: flex;
    gap: 0.5rem;
    flex: 1 1 320px;
    min-width: 220px;
}

.pp-memorials-search input[type="search"] {
    flex: 1;
    padding: 8px 12px;
    border: 1px solid rgba(var(--sz-accent-rgb), 0.25);
    border-radius: 6px;
    font-size: 0.95rem;
    background: var(--sz-surface);
    font-family: inherit;
}

.pp-memorials-search input[type="search"]:focus {
    outline: 2px solid rgba(var(--sz-accent-rgb), 0.4);
    outline-offset: 1px;
}

.pp-memorials-search-button {
    padding: 8px 16px;
    border: 1px solid rgba(var(--sz-accent-rgb), 0.3);
    background: var(--sz-accent);
    color: var(--sz-on-accent);
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.9rem;
    white-space: nowrap;
}

.pp-memorials-search-button:hover {
    background: var(--sz-accent-strong);
}

.pp-memorials-sort {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex: 0 0 auto;
}

.pp-memorials-sort-label {
    font-size: 0.9rem;
    color: var(--sz-muted);
    white-space: nowrap;
}

.pp-memorials-sort select {
    padding: 8px 10px;
    border: 1px solid rgba(var(--sz-accent-rgb), 0.25);
    border-radius: 6px;
    background: var(--sz-surface);
    font-size: 0.9rem;
    font-family: inherit;
    cursor: pointer;
}

.pp-memorials-results-info {
    margin: 0 0 1rem 0;
    padding: 0.5rem 0;
    font-size: 0.9rem;
    color: var(--sz-muted);
}

.pp-memorials-empty {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--sz-muted);
    font-style: italic;
}

.pp-memorials-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1.25rem;
    margin: 0 0 2rem 0;
}

.pp-memorial-card {
    display: flex;
    flex-direction: column;
    background: var(--sz-surface);
    border: 1px solid rgba(var(--sz-accent-rgb), 0.12);
    border-radius: 10px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.pp-memorial-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(var(--sz-accent-rgb), 0.1);
    border-color: rgba(var(--sz-accent-rgb), 0.25);
    text-decoration: none;
}

.pp-memorial-card-photo {
    width: 100%;
    aspect-ratio: 4 / 3;
    background: var(--sz-bg);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.pp-memorial-card-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.pp-memorial-card-photo-placeholder {
    font-size: 3rem;
    opacity: 0.4;
}

.pp-memorial-card-attention-banner {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    padding: 0.55rem 0.75rem;
    background: rgba(var(--sz-overlay-rgb), 0.55);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    text-align: center;
    pointer-events: none;
}

.pp-memorial-card-attention-text {
    display: inline-block;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.25;
    color: var(--sz-on-dark);
    letter-spacing: 0.01em;
    text-shadow: 0 1px 2px rgba(var(--sz-shadow-rgb), 0.55);
}

@media (max-width: 600px) {
    .pp-memorial-card-attention-text {
        font-size: 0.85rem;
    }
    .pp-memorial-card-attention-banner {
        padding: 0.45rem 0.6rem;
    }
}

.pp-memorial-card-body {
    padding: 0.875rem 1rem 1rem;
}

.pp-memorial-card-name {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.15rem;
    color: var(--sz-accent);
    margin: 0 0 0.35rem 0;
    line-height: 1.3;
}

.pp-memorial-card-meta {
    font-size: 0.82rem;
    color: var(--sz-muted);
    margin: 0 0 0.5rem 0;
    line-height: 1.4;
}

.pp-memorials-pagination {
    margin: 2rem 0 1rem 0;
    text-align: center;
}

.pp-memorials-pagination ul {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
    justify-content: center;
}

.pp-memorials-pagination a,
.pp-memorials-pagination span {
    display: inline-block;
    padding: 6px 12px;
    border: 1px solid rgba(var(--sz-accent-rgb), 0.2);
    border-radius: 6px;
    font-size: 0.9rem;
    background: var(--sz-surface);
    color: var(--sz-accent);
    text-decoration: none;
    min-width: 36px;
    text-align: center;
}

.pp-memorials-pagination a:hover {
    background: rgba(var(--sz-accent-rgb), 0.06);
    border-color: rgba(var(--sz-accent-rgb), 0.35);
}

.pp-memorials-pagination .current {
    background: var(--sz-accent);
    color: var(--sz-on-accent);
    border-color: var(--sz-accent);
    font-weight: 600;
}

.pp-memorials-pagination .dots {
    border: 0;
    background: transparent;
}

@media (max-width: 600px) {
    .pp-memorials-filter-bar {
        flex-direction: column;
        gap: 0.75rem;
    }
    .pp-memorials-search {
        flex: 1 1 100%;
    }
    .pp-memorials-grid {
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
        gap: 1rem;
    }
    .pp-memorial-card-name {
        font-size: 1.05rem;
    }
}

.pet-plugin-cemetery-wrap {
    margin: 0.5rem auto 0.75rem;
    max-width: 600px;
}

.pet-plugin-cemetery-wrap,
.pet-plugin-cemetery-wrap * {
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    -webkit-user-drag: none;
    -webkit-touch-callout: none;
}

.pet-plugin-cemetery-scene {
    width: 100%;
    aspect-ratio: 17 / 24;
    border-radius: 12px;
    overflow: hidden;
    /* v0.53.3 — Fallback szín, amit a PNG-betöltés köztes pillanatában a látogató
       lát. KORÁBBAN: #F0E4D2 cream-bézs. Probléma: sötét sírkő-variánsoknál (fekete
       gránit, sötét márvány) éles bézs flicker volt látható mielőtt a PNG snap-pelt.
       MOST: #2C2C2A sötét semleges (a téma --sz-text értéke), ami sötét scene-ekkel
       sima vizuális átmenetet ad. Light/marble scene-eket használó user a saját
       téma-CSS-ében felülírhatja: `--pp-cemetery-base: #F0E4D2;` (vagy bármi más).
       A `fetchpriority="high"` (memorial-garden-section.php) eleve minimalizálja az
       ablakot, ez a fallback-szín csak a maradék mikro-ablak láthatóságát szünteti meg. */
    background: var(--pp-cemetery-base);
    position: relative;
    --decay: 0;

    --wind-strength: 50;
    --rain-intensity: 50;
    --candle-intensity: 50;

    --pp-grass-sway-a-dur:  calc(5.5s  - var(--wind-strength)    * 0.04s);
    --pp-grass-sway-b-dur:  calc(6.2s  - var(--wind-strength)    * 0.04s);
    --pp-grass-sway-c-dur:  calc(7s    - var(--wind-strength)    * 0.04s);
    --pp-cloud-drift-dur:   calc(100s  - var(--wind-strength)    * 0.4s );
    --pp-leaf-fall-1-dur:   calc(13s   - var(--wind-strength)    * 0.08s);
    --pp-leaf-fall-2-dur:   calc(15s   - var(--wind-strength)    * 0.08s);
    --pp-flame-dur:         calc(2.4s  - var(--candle-intensity) * 0.02s);
    --pp-rain-factor:       calc(var(--rain-intensity) / 50);
}

.pet-plugin-cemetery-scene svg {
    display: block;
    width: 100%;
    height: 100%;
}
/* v1.5.1 — A gyulladás-lupé rétege (candle-ignite.js hozza létre). A
   mérvadó geometria INLINE-ban érkezik a JS-ből (cache-biztos, minden
   szélességen a fő svg tükre); ez a blokk a szándék dokumentálása +
   védőháló, ha az inline stílust bármi eltávolítaná. */
.pet-plugin-cemetery-scene > .pp-ignite-layer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    aspect-ratio: 17 / 24;
    z-index: 5;
    transform: translateY(calc(var(--cemetery-crop-top, 0) * -100%));
}

.pet-plugin-cemetery-scene .pp-cemetery-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    overflow: hidden;
}
.pet-plugin-cemetery-scene .pp-cemetery-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.pet-plugin-cemetery-scene .pp-cemetery-overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

/* v0.93.0 — Jelenet-betöltő: pörgő loader, amíg minden kép betölt.
   Betöltés alatt a jelenet összes közvetlen eleme (háttér, fotó, felirat/gyertyák)
   rejtett; a loader fölöttük spinner-rel. Betöltéskor a JS leveszi az `is-loading`-ot,
   és minden EGYSZERRE fade-el be — nincs flicker, nincs egymás utáni felvillanás. */
.pet-plugin-cemetery-scene > :not(.pp-cemetery-loader) {
    transition: opacity 0.45s ease;
}
.pet-plugin-cemetery-scene.is-loading > :not(.pp-cemetery-loader) {
    opacity: 0;
}
.pp-cemetery-loader {
    position: absolute;
    inset: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.4s ease, visibility 0s;
    background: var(--pp-cemetery-base); /* sötét kő alá sötét placeholder */
}
.pp-cemetery-loader.is-on-light {
    background: var(--sz-bg); /* világos kő alá világos placeholder (a sötét spinner kontrasztja + sima fade) */
}
.pet-plugin-cemetery-scene:not(.is-loading) .pp-cemetery-loader {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s ease, visibility 0s 0.4s; /* csak a fade után tűnjön el a DOM-ból */
}
.pp-cemetery-spinner {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 4px solid rgba(var(--sz-on-dark-rgb), 0.22);       /* sötét kövön világos spinner */
    border-top-color: rgba(var(--sz-on-dark-rgb), 0.85);
    animation: pp-cemetery-spin 0.8s linear infinite;
}
.pp-cemetery-loader.is-on-light .pp-cemetery-spinner {
    border-color: rgba(var(--sz-text-rgb), 0.18);              /* világos kövön sötét spinner */
    border-top-color: rgba(var(--sz-text-rgb), 0.7);
}
@keyframes pp-cemetery-spin {
    to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
    .pp-cemetery-spinner { animation-duration: 1.6s; } /* lassabb, de marad a jelzés */
    .pet-plugin-cemetery-scene > :not(.pp-cemetery-loader) { transition: none; }
}

/* v0.92.4 — Sírkő-beállítás gomb a tulajdonosnak (profil grave-szekció)
   v1.6.17 — A sor gombsorrá bővült: emlékőr-aktiválás (pill-gomb vagy
   állapot-chip) + TikTok közösségi gyertyagyújtás (pill-link) a sírkő-gomb
   mellett. Tördelhető flex, közös .pp-owner-cta-btn megjelenés; az emlékőr
   értesítője (aktiválás után) teljes szélességű első sor. */
.pp-cemetery-owner-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px 10px;
    margin: 14px 0 2px;
}
.pp-cemetery-edit-tomb-btn,
.pp-owner-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 18px;
    border-radius: 999px;
    background: var(--sz-surface);
    border: 1px solid rgba(var(--sz-accent-rgb), 0.35);
    color: var(--sz-accent);
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.pp-cemetery-edit-tomb-btn:hover,
.pp-cemetery-edit-tomb-btn:focus-visible,
.pp-owner-cta-btn:hover,
.pp-owner-cta-btn:focus-visible {
    background: var(--sz-accent);
    border-color: var(--sz-accent);
    color: var(--sz-on-accent);
}
.pp-cemetery-edit-tomb-btn svg,
.pp-owner-cta-btn svg { flex: 0 0 auto; }
/* Link-változat (TikTok): a téma <a>-szabályai ne színezzék/húzzák alá. */
a.pp-owner-cta-btn,
a.pp-owner-cta-btn:visited { color: var(--sz-accent); text-decoration: none; }
a.pp-owner-cta-btn:hover,
a.pp-owner-cta-btn:focus-visible { color: var(--sz-on-accent); text-decoration: none; }
/* A form a flex-elem, a gomb benne — margó nélkül. */
.pp-cemetery-owner-actions .pp-emlekor-activate-form--pill { display: inline-flex; margin: 0; }
/* Állapot-chip (emlékőr aktív / várakozik / örök): a gombokkal azonos méretű,
   de halk, nem-interaktív pill. */
.pp-owner-cta-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 14px;
    border-radius: 999px;
    border: 1px solid rgba(var(--sz-text-rgb), 0.12);
    background: rgba(var(--sz-text-rgb), 0.04);
    color: var(--sz-muted);
    font-size: 13px;
    line-height: 1;
    white-space: nowrap;
}
/* Az emlékőr-értesítő a gombsor tetején, teljes szélességben (order: -1). */
.pp-cemetery-owner-actions .pp-emlekor-activation-notice {
    flex: 1 1 100%;
    order: -1;
    margin: 0 0 2px;
    text-align: center;
}
@media (max-width: 480px) {
    .pp-cemetery-owner-actions { gap: 8px; }
    .pp-cemetery-edit-tomb-btn,
    .pp-owner-cta-btn { padding: 8px 14px; font-size: 13px; }
    .pp-owner-cta-chip { white-space: normal; text-align: center; font-size: 12.5px; }
}

@media (min-width: 1024px) {
    .pet-plugin-cemetery-wrap {
        max-width: calc(600px * var(--cemetery-scale));
    }
    .pet-plugin-cemetery-scene {
        aspect-ratio: 17 / calc(24 * (1 - var(--cemetery-crop-top)));
    }
    .pet-plugin-cemetery-scene > .pp-cemetery-bg,
    .pet-plugin-cemetery-scene > svg {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 17 / 24;
        transform: translateY(calc(var(--cemetery-crop-top) * -100%));
    }
}

.pet-plugin-cemetery-scene .pp-cem-fresh       { opacity: calc(1 - var(--decay)); transition: opacity 240ms ease; }
.pet-plugin-cemetery-scene .pp-cem-decay       { opacity: var(--decay);            transition: opacity 240ms ease; }
.pet-plugin-cemetery-scene .pp-cem-decay.pp-cem-bouquet-decay {
    opacity: clamp(0, min(var(--decay) * 2.5, (1 - var(--decay)) * 2.5), 1);
    transition: opacity 320ms ease;
}
.pet-plugin-cemetery-scene .pp-cem-crack       { opacity: calc(0.15 + var(--decay) * 0.65); transition: opacity 240ms ease; }
.pet-plugin-cemetery-scene .pp-cem-vine        { opacity: 1; }
.pet-plugin-cemetery-scene .pp-cem-vine-piece  { opacity: clamp(0, (var(--decay) - var(--t)) * 10000, 1); transition: opacity 80ms ease; }
.pet-plugin-cemetery-scene .pp-cem-weed        { opacity: var(--decay);            transition: opacity 240ms ease; }
.pet-plugin-cemetery-scene .pp-cem-fallen-leaf { opacity: var(--decay);            transition: opacity 240ms ease; }

.pet-plugin-cemetery-scene .pp-cem-storm       { opacity: calc(max(0, var(--decay) - 0.5) * 2 * var(--pp-rain-factor));        transition: opacity 320ms ease; }
.pet-plugin-cemetery-scene .pp-cem-storm-soft  { opacity: calc(max(0, var(--decay) - 0.5) * 2 * 0.7 * var(--pp-rain-factor));  transition: opacity 320ms ease; }
.pet-plugin-cemetery-scene .pp-cem-clear       { opacity: calc(1 - max(0, (var(--decay) - 0.5) * 2));                              transition: opacity 320ms ease; }
.pet-plugin-cemetery-scene .pp-cem-clear-soft  { opacity: calc((1 - max(0, (var(--decay) - 0.5) * 2)) * 0.7);                      transition: opacity 320ms ease; }

@keyframes pp-cem-leaf-fall-1 {
    0%   { transform: translate(420px,80px)  rotate(0deg);   opacity: 0; }
    5%   { opacity: .85; }
    25%  { transform: translate(450px,180px) rotate(80deg); }
    50%  { transform: translate(415px,260px) rotate(150deg); opacity: .85; }
    75%  { transform: translate(458px,360px) rotate(230deg); opacity: .7; }
    95%  { transform: translate(428px,442px) rotate(310deg); opacity: 0; }
    100% { transform: translate(428px,442px) rotate(310deg); opacity: 0; }
}

@keyframes pp-cem-leaf-fall-2 {
    0%   { transform: translate(180px,60px)  rotate(0deg);    opacity: 0; }
    10%  { opacity: .8; }
    30%  { transform: translate(150px,170px) rotate(-90deg); }
    55%  { transform: translate(192px,280px) rotate(-180deg); opacity: .8; }
    80%  { transform: translate(155px,390px) rotate(-260deg); opacity: .6; }
    100% { transform: translate(172px,452px) rotate(-340deg); opacity: 0; }
}

.pet-plugin-cemetery-scene .pp-cem-leaf-1 {
    animation: pp-cem-leaf-fall-1 var(--pp-leaf-fall-1-dur) linear infinite;
    transform-box: fill-box;
    transform-origin: center;
}
.pet-plugin-cemetery-scene .pp-cem-leaf-2 {
    animation: pp-cem-leaf-fall-2 var(--pp-leaf-fall-2-dur) linear infinite -4s;
    transform-box: fill-box;
    transform-origin: center;
}

@keyframes pp-cem-firefly-path {
    0%   { transform: translate(80px,220px); }
    18%  { transform: translate(220px,175px); }
    35%  { transform: translate(380px,200px); }
    52%  { transform: translate(530px,175px); }
    68%  { transform: translate(450px,260px); }
    85%  { transform: translate(260px,290px); }
    100% { transform: translate(80px,220px); }
}
@keyframes pp-cem-firefly-glow {
    0%, 100% { opacity: .35; }
    50%      { opacity: 1; }
}

.pet-plugin-cemetery-scene .pp-cem-firefly {
    animation: pp-cem-firefly-path 22s ease-in-out infinite;
    transform-box: fill-box;
    transform-origin: center;
}
.pet-plugin-cemetery-scene .pp-cem-firefly-light {
    animation: pp-cem-firefly-glow 1.8s ease-in-out infinite;
}

@keyframes pp-cem-flame {
    0%   { transform: rotate(-2deg) scale(1, 1);       opacity: .95; }
    20%  { transform: rotate(3deg)  scale(1.04, 1.08); opacity: 1; }
    40%  { transform: rotate(-1deg) scale(.96, .94);   opacity: .9; }
    60%  { transform: rotate(4deg)  scale(1.03, 1.06); opacity: .98; }
    80%  { transform: rotate(-3deg) scale(1.01, 1.03); opacity: .93; }
    100% { transform: rotate(-2deg) scale(1, 1);       opacity: .95; }
}
.pet-plugin-cemetery-scene .pp-cem-flame {
    animation: pp-cem-flame var(--pp-flame-dur) ease-in-out infinite;
    transform-origin: 50% 100%;
    transform-box: fill-box;
}

.pet-plugin-cemetery-scene .pp-cem-halo {
    animation: pp-cem-glow-pulse var(--pp-flame-dur) ease-in-out infinite;
    transform-origin: center;
    transform-box: fill-box;
}
.pet-plugin-cemetery-scene .fl {
    animation: pp-cem-flame var(--pp-flame-dur) ease-in-out infinite;
    transform-origin: 50% 100%;
    transform-box: fill-box;
}
@keyframes pp-cem-glow-pulse {
    0%, 100% { opacity: .65; transform: scale(1, 1); }
    50%      { opacity: .9;  transform: scale(1.12, 1.06); }
}
.pet-plugin-cemetery-scene .glow {
    animation: pp-cem-glow-pulse var(--pp-flame-dur) ease-in-out infinite;
    transform-origin: 50% 100%;
    transform-box: fill-box;
}

@keyframes pp-cem-grass-sway {
    0%, 100% { transform: rotate(0deg); }
    50%      { transform: rotate(2.5deg); }
}
.pet-plugin-cemetery-scene .pp-cem-grass-blade {
    transform-origin: 50% 100%;
    transform-box: fill-box;
}
.pet-plugin-cemetery-scene .pp-cem-sway-a { animation: pp-cem-grass-sway var(--pp-grass-sway-a-dur) ease-in-out infinite; }
.pet-plugin-cemetery-scene .pp-cem-sway-b { animation: pp-cem-grass-sway var(--pp-grass-sway-b-dur) ease-in-out infinite -1s; }
.pet-plugin-cemetery-scene .pp-cem-sway-c { animation: pp-cem-grass-sway var(--pp-grass-sway-c-dur)   ease-in-out infinite -2s; }

@keyframes pp-cem-cloud-drift {
    0%   { transform: translateX(0); }
    100% { transform: translateX(60px); }
}
.pet-plugin-cemetery-scene .pp-cem-cloud {
    animation: pp-cem-cloud-drift var(--pp-cloud-drift-dur) ease-in-out infinite alternate;
}

@media (prefers-reduced-motion: reduce) {
    .pet-plugin-cemetery-scene .pp-cem-leaf-1,
    .pet-plugin-cemetery-scene .pp-cem-leaf-2,
    .pet-plugin-cemetery-scene .pp-cem-firefly,
    .pet-plugin-cemetery-scene .pp-cem-firefly-light,
    .pet-plugin-cemetery-scene .pp-cem-flame,
    .pet-plugin-cemetery-scene .fl,
    .pet-plugin-cemetery-scene .glow,
    .pet-plugin-cemetery-scene .pp-cem-halo,
    .pet-plugin-cemetery-scene .pp-cem-grass-blade,
    .pet-plugin-cemetery-scene .pp-cem-cloud {
        animation: none;
    }
}

@media (max-width: 600px) {
}

.pp-eternal-candles-strip-wrap {
    position: relative;
    padding: 0 8px;
    margin: 1rem -8px;
}

.pp-eternal-scroll-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid rgba(var(--sz-accent-rgb), 0.2);
    background: var(--sz-surface);
    color: var(--sz-accent);
    cursor: pointer;
    font-size: 1.4rem;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 6px rgba(var(--sz-shadow-rgb), 0.06), 0 0 0 1px rgba(var(--sz-surface-rgb), 0.4) inset;
    transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease, background 0.15s ease;
    padding: 0 0 2px 0;
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: 600;
}

.pp-eternal-scroll-prev {
    left: -4px;
}
.pp-eternal-scroll-next {
    right: -4px;
}

.pp-eternal-scroll-btn:hover:not([aria-disabled="true"]) {
    background: var(--sz-surface);
    transform: translateY(-50%) scale(1.06);
    box-shadow: 0 4px 12px rgba(var(--sz-accent-rgb), 0.18), 0 0 0 1px rgba(var(--sz-surface-rgb), 0.4) inset;
}

.pp-eternal-scroll-btn:focus-visible {
    outline: 2px solid rgba(var(--sz-accent-rgb), 0.5);
    outline-offset: 2px;
}

.pp-eternal-scroll-btn[aria-disabled="true"] {
    opacity: 0.3;
    cursor: not-allowed;
    pointer-events: none;
}

.pp-eternal-candles-strip-wrap.pp-no-scroll .pp-eternal-scroll-btn {
    display: none;
}

@media (max-width: 600px) {
    .pp-eternal-candles-strip-wrap {
        padding: 0 4px;
        margin: 1rem -4px;
    }
    .pp-eternal-scroll-btn {
        width: 32px;
        height: 32px;
        font-size: 1.2rem;
    }
    .pp-eternal-scroll-prev { left: -2px; }
    .pp-eternal-scroll-next { right: -2px; }
}
