h1:focus {
    outline: none;
}

:root {
    --color-ink: #2b2520;
    --color-muted: #716960;
    --color-surface: #fffaf4;
    --color-band: #f5efe6;
    --color-line: #e5ded4;
    --color-primary: #2d5047;
    --color-primary-dark: #1f3933;
    --color-accent: #b26b3f;
    --shadow-soft: 0 18px 48px rgba(43, 37, 32, 0.12);
}

* {
    box-sizing: border-box;
}

html {
    color: var(--color-ink);
    font-family: "Segoe UI", Arial, sans-serif;
}

body {
    background: var(--color-surface);
    color: var(--color-ink);
    margin: 0;
}

a {
    color: var(--color-primary);
}

.primary-nav a {
    align-items: center;
    display: inline-flex;
    min-height: 2.5rem;
    padding: 0 0.2rem;
}

.content-page {
    padding: clamp(2rem, 5vw, 4.5rem) clamp(1rem, 4vw, 4rem);
}

.content-page.narrow {
    margin: 0 auto;
    max-width: 960px;
}

.page-intro {
    max-width: 820px;
}

.eyebrow {
    color: var(--color-accent);
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0;
    margin: 0 0 0.7rem;
    text-transform: uppercase;
}

.page-intro h1,
.hero-copy h1 {
    font-size: clamp(2.3rem, 5vw, 5rem);
    line-height: 0.98;
    margin: 0;
    max-width: 900px;
}

.page-intro p,
.hero-copy p,
.lead {
    color: var(--color-muted);
    font-size: clamp(1.05rem, 1.5vw, 1.25rem);
    line-height: 1.65;
}

.hero {
    background: linear-gradient(90deg, rgba(43, 37, 32, 0.68), rgba(43, 37, 32, 0.18)), url("/images/box-of-reels.jpg") center/cover;
    color: #fff;
    min-height: min(720px, 84vh);
    padding: clamp(5rem, 12vw, 8rem) clamp(1rem, 5vw, 5rem);
}

.hero-copy {
    max-width: 760px;
}

.hero-copy p {
    color: rgba(255, 255, 255, 0.88);
    max-width: 680px;
}

.hero-actions,
.action-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-top: 1.5rem;
}

.button,
.button-secondary,
.button-danger {
    align-items: center;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: 800;
    justify-content: center;
    min-height: 2.75rem;
    padding: 0.85rem 1.1rem;
    text-decoration: none;
}

.button {
    background: var(--color-primary);
    color: #fff;
}

.button:hover {
    background: var(--color-primary-dark);
    color: #fff;
}

.button-secondary {
    background: rgba(255, 255, 255, 0.9);
    color: var(--color-ink);
}

.button-danger {
    background: #8f3b25;
    color: #fff;
}

.button-danger:hover {
    background: #6f2d1d;
    color: #fff;
}

.section-band {
    background: var(--color-band);
    padding: clamp(2.5rem, 6vw, 5rem) clamp(1rem, 4vw, 4rem);
}

.section-heading {
    margin-bottom: 1.5rem;
    max-width: 760px;
}

.section-heading h2 {
    font-size: clamp(1.8rem, 3vw, 3rem);
    line-height: 1.08;
    margin: 0;
}

.section-heading p {
    color: var(--color-muted);
    line-height: 1.65;
}

.grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}

.info-card {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: var(--shadow-soft);
    padding: 1.25rem;
}

.info-card h2,
.info-card h3 {
    margin-top: 0;
}

.info-card p,
.info-card li {
    color: var(--color-muted);
    line-height: 1.55;
}

.info-card > a,
.sidebar-panel > a,
.resource-card-actions > a,
.proof-actions > a,
.trust-callout a,
.resource-followup a {
    align-items: center;
    display: inline-flex;
    min-height: 2.5rem;
}

.compact-card {
    box-shadow: none;
}

.price-range {
    color: var(--color-accent);
    font-weight: 800;
    margin-bottom: 0.45rem;
}

.add-on-heading {
    margin-top: clamp(2rem, 5vw, 4rem);
}

.tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}

.tag-list span {
    background: #f6e7d9;
    border-radius: 999px;
    color: #5d3a24;
    font-size: 0.82rem;
    font-weight: 700;
    padding: 0.35rem 0.65rem;
}

.steps {
    counter-reset: step;
    display: grid;
    gap: 0.8rem;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    list-style: none;
    padding: 0;
}

.steps li {
    background: #fff;
    border-left: 4px solid var(--color-primary);
    border-radius: 8px;
    color: var(--color-muted);
    padding: 1rem;
}

.steps strong {
    color: var(--color-ink);
    display: block;
    margin-bottom: 0.35rem;
}

.proof-page {
    margin: 0 auto;
    max-width: 1280px;
}

.proof-note {
    align-items: start;
    background: #eef5f2;
    border: 1px solid #c9ded7;
    border-radius: 8px;
    display: grid;
    gap: 0.35rem;
    margin: 2rem 0;
    padding: 1rem;
}

.proof-note span {
    color: var(--color-muted);
    line-height: 1.55;
}

.proof-grid {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.proof-card {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: var(--shadow-soft);
    display: grid;
    overflow: hidden;
}

.proof-media {
    align-items: end;
    aspect-ratio: 16 / 8;
    background: linear-gradient(0deg, rgba(43, 37, 32, 0.76), rgba(43, 37, 32, 0.1)), url("/images/box-of-reels.jpg") center/cover;
    color: #fff;
    display: flex;
    padding: 1rem;
}

.proof-media span {
    font-size: 0.82rem;
    font-weight: 900;
    text-transform: uppercase;
}

.proof-card-body {
    display: grid;
    gap: 1rem;
    padding: 1.25rem;
}

.proof-card h2 {
    font-size: clamp(1.35rem, 2vw, 1.8rem);
    margin: 0;
}

.proof-card p {
    color: var(--color-muted);
    line-height: 1.55;
    margin: 0;
}

.proof-details {
    display: grid;
    gap: 0.8rem;
    margin: 0;
}

.proof-details dt {
    color: var(--color-primary);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.proof-details dd {
    color: var(--color-muted);
    line-height: 1.55;
    margin: 0.2rem 0 0;
}

.proof-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.proof-followup {
    border-radius: 8px;
    margin-top: 2rem;
}

.resources-page {
    margin: 0 auto;
    max-width: 1280px;
}

.resource-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-top: 1.4rem;
}

.resource-cluster-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin: 2rem 0 2.5rem;
}

.resource-cluster-nav a {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 999px;
    color: var(--color-primary-dark);
    font-size: 0.88rem;
    font-weight: 800;
    padding: 0.55rem 0.8rem;
    text-decoration: none;
}

.resource-cluster {
    border-top: 1px solid var(--color-line);
    padding: clamp(2rem, 5vw, 3rem) 0;
}

.resource-card-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.resource-card {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: var(--shadow-soft);
    display: grid;
    gap: 1rem;
    padding: clamp(1rem, 2vw, 1.4rem);
}

.resource-card h3 {
    font-size: clamp(1.25rem, 2vw, 1.6rem);
    line-height: 1.15;
    margin: 0;
}

.resource-card p {
    color: var(--color-muted);
    line-height: 1.55;
    margin: 0;
}

.resource-label {
    color: var(--color-accent) !important;
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.resource-card ul {
    display: grid;
    gap: 0.55rem;
    margin: 0;
    padding-left: 1.1rem;
}

.resource-card li {
    color: var(--color-muted);
    line-height: 1.5;
}

.resource-card-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-top: auto;
}

.resource-card-actions > a:not(.button) {
    font-weight: 800;
}

.resource-playbook,
.resource-followup {
    background: #eef5f2;
    border: 1px solid #c9ded7;
    border-radius: 8px;
    display: grid;
    gap: 1.25rem;
    margin-top: 2rem;
    padding: clamp(1.25rem, 3vw, 2rem);
}

.resource-playbook {
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
}

.resource-playbook h2,
.resource-followup h2 {
    font-size: clamp(1.55rem, 3vw, 2.4rem);
    line-height: 1.1;
    margin: 0;
}

.resource-playbook p,
.resource-followup p {
    color: var(--color-muted);
    line-height: 1.6;
}

.resource-playbook ol {
    display: grid;
    gap: 0.85rem;
    margin: 0;
    padding-left: 1.2rem;
}

.resource-playbook li {
    color: var(--color-muted);
    line-height: 1.55;
}

.resource-playbook strong {
    color: var(--color-ink);
}

.resource-followup {
    align-items: center;
    grid-template-columns: minmax(0, 1fr) auto;
}

.trust-page {
    margin: 0 auto;
    max-width: 1180px;
}

.trust-principles {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 2rem 0 1rem;
}

.trust-principle,
.trust-policy-card {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: var(--shadow-soft);
    padding: clamp(1rem, 2vw, 1.4rem);
}

.trust-principle h2,
.trust-policy-card h3 {
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    line-height: 1.15;
    margin: 0;
}

.trust-principle p:not(.eyebrow),
.trust-policy-card p,
.trust-policy-card li {
    color: var(--color-muted);
    line-height: 1.55;
}

.trust-policy-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.trust-policy-card {
    display: grid;
    gap: 0.8rem;
}

.trust-policy-card ul {
    display: grid;
    gap: 0.55rem;
    margin: 0;
    padding-left: 1.1rem;
}

.trust-callout {
    align-items: center;
    background: #eef5f2;
    border: 1px solid #c9ded7;
    border-radius: 8px;
    display: grid;
    gap: 1.25rem;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-top: 2rem;
    padding: clamp(1.25rem, 3vw, 2rem);
}

.trust-callout h2 {
    font-size: clamp(1.55rem, 3vw, 2.4rem);
    line-height: 1.1;
    margin: 0;
}

.trust-callout p {
    color: var(--color-muted);
    line-height: 1.6;
}

.intake-page {
    margin: 0 auto;
    max-width: 1280px;
}

.intake-layout {
    align-items: start;
    display: grid;
    gap: 1.25rem;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
    margin-top: 2rem;
}

.intake-form,
.intake-sidebar {
    display: grid;
    gap: 1rem;
}

.form-section,
.sidebar-panel,
.validation-panel,
.confirmation-panel {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    padding: clamp(1rem, 2vw, 1.5rem);
}

.form-section-heading {
    margin-bottom: 1rem;
}

.form-note {
    color: var(--color-muted);
    line-height: 1.55;
    margin: 0.75rem 0 0;
}

.form-section-heading h2,
.sidebar-panel h2,
.validation-panel h2,
.confirmation-panel h2 {
    font-size: clamp(1.25rem, 2vw, 1.7rem);
    line-height: 1.15;
    margin: 0;
}

.form-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.form-field {
    display: grid;
    gap: 0.4rem;
}

.form-field.full {
    grid-column: 1 / -1;
}

.form-field label,
.add-on-picker legend {
    align-items: center;
    color: var(--color-ink);
    display: flex;
    flex-wrap: wrap;
    font-size: 0.9rem;
    font-weight: 800;
    gap: 0.5rem;
}

.required-badge {
    background: #f6e7d9;
    border: 1px solid #e4c3a8;
    border-radius: 999px;
    color: #5d3a24;
    display: inline-flex;
    font-size: 0.68rem;
    font-weight: 900;
    line-height: 1;
    padding: 0.2rem 0.45rem;
    text-transform: uppercase;
}

.field-control {
    background: #fffdf9;
    border: 1px solid #d6cabd;
    border-radius: 8px;
    color: var(--color-ink);
    font: inherit;
    min-height: 2.8rem;
    padding: 0.75rem 0.85rem;
    width: 100%;
}

.field-control:focus {
    border-color: var(--color-primary);
    outline: 3px solid rgba(45, 80, 71, 0.16);
}

.field-control[aria-invalid="true"] {
    border-color: #b32121;
    outline: 2px solid rgba(179, 33, 33, 0.18);
}

.field-control.textarea {
    min-height: 6rem;
    resize: vertical;
}

.field-control.tall {
    min-height: 9rem;
}

.checkbox-stack {
    display: grid;
    gap: 0.7rem;
    margin: 1rem 0;
}

.checkbox-stack label,
.checkbox-grid label {
    align-items: start;
    color: var(--color-muted);
    cursor: pointer;
    display: grid;
    gap: 0.65rem;
    grid-template-columns: auto 1fr;
    line-height: 1.45;
    min-height: 2.75rem;
}

.checkbox-stack label.is-invalid {
    background: #fff4f1;
    border-left: 4px solid #b32121;
    border-radius: 8px;
    padding: 0.5rem;
}

.checkbox-stack input,
.checkbox-grid input {
    accent-color: var(--color-primary);
    height: 1.35rem;
    margin-top: 0.22rem;
    width: 1.35rem;
}

.consent-stack {
    border-top: 1px solid var(--color-line);
    padding-top: 1rem;
}

.selected-package {
    background: #eef5f2;
    border: 1px solid #c9ded7;
    border-radius: 8px;
    display: grid;
    gap: 0.35rem;
    margin: 1rem 0;
    padding: 1rem;
}

.selected-package span,
.selected-package em,
.sidebar-panel p,
.validation-panel li,
.validation-panel p,
.confirmation-panel p,
.confirmation-panel dd {
    color: var(--color-muted);
    line-height: 1.55;
}

.add-on-picker {
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
}

.add-on-picker fieldset {
    border: 1px solid var(--color-line);
    border-radius: 8px;
    margin: 0;
    padding: 1rem;
}

.checkbox-grid {
    display: grid;
    gap: 0.9rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 0.7rem;
}

.checkbox-grid.memorial-page-options {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.checkbox-grid strong {
    color: var(--color-ink);
    display: block;
}

.checkbox-grid small {
    display: block;
    margin-top: 0.2rem;
}

.validation-panel {
    background: #fff4f1;
    border-color: #e4b7ab;
}

.confirmation-panel {
    background: #f1f7f4;
    border-color: #bcd7cc;
}

.confirmation-panel dl {
    display: grid;
    gap: 0.8rem;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    margin: 1rem 0 0;
}

.followup-list,
.sidebar-steps {
    display: grid;
    gap: 0.65rem;
    margin: 1rem 0;
    padding-left: 1.15rem;
}

.followup-list li,
.sidebar-steps li {
    color: var(--color-muted);
    line-height: 1.5;
}

.followup-list strong,
.sidebar-steps strong {
    color: var(--color-ink);
}

.confirmation-panel dt {
    color: var(--color-primary);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.confirmation-panel dd {
    margin: 0.2rem 0 0;
}

.form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
}

button.button {
    border: 0;
    cursor: pointer;
    font: inherit;
}

button.button:disabled,
button.button-secondary:disabled,
button.button-danger:disabled {
    cursor: not-allowed;
    opacity: 0.68;
}

.admin-page {
    margin: 0 auto;
    max-width: 1280px;
}

.admin-summary-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    margin: 2rem 0 1rem;
}

.admin-metric,
.admin-empty,
.admin-section,
.admin-edit-panel {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    padding: 1rem;
}

.admin-metric {
    display: grid;
    gap: 0.3rem;
}

.admin-metric span,
.detail-list dt {
    color: var(--color-muted);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.admin-metric strong {
    color: var(--color-primary);
    font-size: 2rem;
    line-height: 1;
}

.admin-empty p {
    color: var(--color-muted);
}

.admin-table-wrap {
    border: 1px solid var(--color-line);
    border-radius: 8px;
    overflow-x: auto;
}

.admin-table {
    background: #fff;
    border-collapse: collapse;
    min-width: 980px;
    width: 100%;
}

.admin-table caption {
    height: 1px;
    overflow: hidden;
    position: absolute;
    width: 1px;
}

.admin-table th,
.admin-table td {
    border-bottom: 1px solid var(--color-line);
    padding: 0.85rem;
    text-align: left;
    vertical-align: top;
}

.admin-table th {
    background: var(--color-band);
    color: var(--color-ink);
    font-size: 0.8rem;
    text-transform: uppercase;
}

.admin-table td span {
    color: var(--color-muted);
    display: block;
    margin-top: 0.15rem;
}

.status-pill,
.table-action {
    border-radius: 999px;
    display: inline-flex;
    font-size: 0.82rem;
    font-weight: 800;
    padding: 0.35rem 0.65rem;
}

.status-pill {
    background: #eef5f2;
    color: var(--color-primary-dark);
}

.table-action {
    background: var(--color-primary);
    color: #fff;
    text-decoration: none;
}

.admin-detail-layout {
    align-items: start;
    display: grid;
    gap: 1.25rem;
    grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
    margin-top: 1rem;
}

.admin-edit-panel {
    display: grid;
    gap: 1rem;
    position: sticky;
    top: 1rem;
}

.admin-edit-panel h2,
.admin-section h2 {
    font-size: 1.35rem;
    margin: 0;
}

.admin-detail-stack {
    display: grid;
    gap: 1rem;
}

.project-page {
    display: grid;
    gap: 1.5rem;
}

.project-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
}

.project-card {
    background: #fff;
    border: 1px solid rgba(38, 63, 61, 0.16);
    border-radius: 8px;
    box-shadow: 0 12px 30px rgba(28, 45, 43, 0.08);
    padding: 1.25rem;
}

.project-card h2 {
    font-size: clamp(1.2rem, 2vw, 1.45rem);
    margin: 0.4rem 0 0.8rem;
}

.project-card-header {
    align-items: center;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
}

.project-meta {
    display: grid;
    gap: 0.55rem;
    margin: 0 0 1rem;
}

.project-meta div {
    display: grid;
    gap: 0.15rem;
}

.project-meta dt {
    color: var(--color-muted);
    font-size: 0.82rem;
    font-weight: 800;
    text-transform: uppercase;
}

.project-meta dd {
    margin: 0;
}

.project-detail-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.memorial-public-page {
    display: grid;
    gap: 1.25rem;
    margin: 0 auto;
    max-width: 1120px;
}

.memorial-public-hero {
    align-items: end;
    background:
        linear-gradient(120deg, rgba(38, 63, 61, 0.86), rgba(86, 69, 48, 0.56)),
        url("/images/box-of-reels.jpg") center/cover;
    border-radius: 8px;
    color: #fff;
    display: grid;
    min-height: 22rem;
    padding: clamp(1.5rem, 4vw, 3rem);
}

.memorial-public-hero h1 {
    color: #fff;
    font-size: clamp(2.25rem, 5vw, 4.6rem);
    line-height: 1;
    margin: 0.35rem 0;
    max-width: 12ch;
}

.memorial-public-hero p {
    font-size: 1.08rem;
    margin: 0;
}

.memorial-public-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr);
}

.memorial-story-section p:not(.eyebrow, .form-note) {
    color: var(--color-ink);
    font-size: 1.05rem;
    line-height: 1.7;
    margin: 1rem 0 0;
}

.memorial-gallery-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
    margin-top: 1rem;
}

.memorial-gallery-card {
    background: #fffdf9;
    border: 1px solid rgba(38, 63, 61, 0.14);
    border-radius: 8px;
    display: grid;
    gap: 0.65rem;
    overflow: hidden;
}

.memorial-gallery-card img,
.memorial-media-placeholder {
    aspect-ratio: 4 / 3;
    background: #eef5f2;
    inline-size: 100%;
    object-fit: cover;
}

.memorial-media-placeholder {
    align-items: center;
    color: var(--color-primary-dark);
    display: grid;
    font-weight: 900;
    justify-items: center;
}

.memorial-gallery-card div:last-child {
    display: grid;
    gap: 0.2rem;
    padding: 0 0.85rem 0.85rem;
}

.memorial-gallery-card span {
    color: var(--color-muted);
    font-size: 0.86rem;
}

.guestbook-entry-list {
    display: grid;
    gap: 0.85rem;
    margin-top: 1rem;
}

.guestbook-entry-card {
    background: #fffdf9;
    border: 1px solid rgba(38, 63, 61, 0.14);
    border-radius: 8px;
    display: grid;
    gap: 0.75rem;
    padding: 1rem;
}

.guestbook-entry-card p {
    color: var(--color-ink);
    line-height: 1.65;
    margin: 0;
}

.guestbook-entry-card footer {
    border-top: 1px solid rgba(38, 63, 61, 0.12);
    color: var(--color-muted);
    display: grid;
    gap: 0.2rem;
    padding-top: 0.75rem;
}

.guestbook-entry-card strong {
    color: var(--color-ink);
}

.guestbook-submit-panel,
.guestbook-moderation-panel {
    border-top: 1px solid rgba(38, 63, 61, 0.14);
    display: grid;
    gap: 1rem;
    margin-top: 1.25rem;
    padding-top: 1.25rem;
}

.plan-choice-grid {
    display: grid;
    gap: 0.9rem;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}

.plan-choice {
    border: 1px solid rgba(38, 63, 61, 0.16);
    border-radius: 8px;
    display: grid;
    gap: 0.45rem;
    padding: 1rem;
}

.plan-choice.selected {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(39, 116, 107, 0.12);
}

.plan-choice input {
    block-size: 1.1rem;
    inline-size: 1.1rem;
}

.plan-choice-name {
    font-weight: 800;
}

.upload-next-panel {
    background: rgba(39, 116, 107, 0.06);
    border: 1px solid rgba(39, 116, 107, 0.22);
    border-radius: 8px;
    padding: 1rem;
}

.upload-next-panel h2,
.upload-next-panel h3 {
    margin-top: 0;
}

.compact-actions {
    margin-top: 1rem;
}

.sop-link-panel {
    display: grid;
    gap: 0.75rem;
    margin-top: 1rem;
}

.sop-link-panel h3 {
    margin: 0;
}

.sop-link-grid {
    display: grid;
    gap: 0.65rem;
    grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
}

.sop-link-card {
    background: #fffdf9;
    border: 1px solid rgba(38, 63, 61, 0.16);
    border-radius: 8px;
    color: inherit;
    display: grid;
    gap: 0.35rem;
    padding: 0.8rem;
    text-decoration: none;
}

.sop-link-card:hover,
.sop-link-card:focus-visible {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(39, 116, 107, 0.12);
}

.sop-link-card strong {
    display: block;
    overflow-wrap: anywhere;
}

.sop-link-card span {
    color: var(--color-muted);
    font-size: 0.9rem;
    line-height: 1.45;
}

.guest-link-list {
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
}

.guest-link-card {
    border: 1px solid rgba(38, 63, 61, 0.16);
    border-radius: 8px;
    display: grid;
    gap: 1rem;
    padding: 1rem;
}

.guest-link-header {
    align-items: start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.guest-link-header h3 {
    margin: 0;
}

.share-link-field {
    color: var(--color-muted);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.share-link-row {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.approval-list {
    display: grid;
    gap: 0.85rem;
    margin-top: 1rem;
}

.approval-item {
    border: 1px solid rgba(38, 63, 61, 0.16);
    border-left: 4px solid var(--color-accent);
    border-radius: 8px;
    display: grid;
    gap: 0.75rem;
    padding: 1rem;
}

.approval-item strong {
    display: block;
    overflow-wrap: anywhere;
}

.approval-item span {
    color: var(--color-muted);
    display: block;
    margin-top: 0.2rem;
}

.media-filter-grid {
    margin-top: 1rem;
}

.media-review-grid {
    display: grid;
    gap: 0.85rem;
    margin-top: 1rem;
}

.media-review-item {
    border: 1px solid rgba(38, 63, 61, 0.16);
    border-left: 4px solid var(--color-primary);
    border-radius: 8px;
    display: grid;
    gap: 0.75rem;
    padding: 1rem;
}

.media-review-item.is-muted {
    background: #fbf8f4;
    border-left-color: #b7aa9c;
}

.media-review-header {
    align-items: start;
    display: grid;
    gap: 0.8rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.media-review-header strong {
    display: block;
    overflow-wrap: anywhere;
}

.media-review-contributor {
    color: var(--color-muted);
    display: block;
    margin-top: 0.2rem;
}

.status-pill-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    justify-content: end;
}

.status-pill-warning {
    background: #fff0e8;
    color: #7a351f;
}

.status-pill-success {
    background: #eef5f2;
    color: var(--color-primary-dark);
}

.status-pill-danger {
    background: #fff4f1;
    color: #8f3b25;
}

.people-organization-layout {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);
    margin-top: 1rem;
}

.people-form,
.people-library,
.people-card {
    border: 1px solid rgba(38, 63, 61, 0.14);
    border-radius: 8px;
    padding: 1rem;
}

.people-form,
.people-card {
    background: #fffdf9;
}

.people-library {
    display: grid;
    gap: 0.85rem;
}

.people-library h3 {
    font-size: 1rem;
    margin: 0;
}

.people-card-list {
    display: grid;
    gap: 0.85rem;
}

.people-card {
    display: grid;
    gap: 0.75rem;
}

.people-card-header {
    align-items: start;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
}

.people-card-header strong {
    display: block;
    overflow-wrap: anywhere;
}

.people-card-header span:not(.status-pill) {
    color: var(--color-muted);
    display: block;
    margin-top: 0.2rem;
}

.handoff-summary {
    background: #f7faf8;
    border: 1px solid rgba(39, 116, 107, 0.18);
    border-radius: 8px;
    display: grid;
    gap: 0.55rem;
    margin-top: 1rem;
    padding: 1rem;
}

.handoff-summary strong {
    font-size: 1.05rem;
}

.handoff-summary p {
    color: var(--color-muted);
    line-height: 1.55;
    margin: 0;
}

.handoff-checklist {
    display: grid;
    gap: 0.75rem;
    margin-top: 1rem;
}

.handoff-item {
    align-items: start;
    border: 1px solid rgba(38, 63, 61, 0.14);
    border-radius: 8px;
    display: grid;
    gap: 0.75rem;
    grid-template-columns: auto minmax(0, 1fr);
    padding: 0.85rem;
}

.handoff-item p {
    color: var(--color-muted);
    line-height: 1.5;
    margin: 0.2rem 0 0;
}

.production-brief-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 0.8fr);
    margin-top: 1rem;
}

.production-brief-grid section,
.service-opportunity-card {
    border: 1px solid rgba(38, 63, 61, 0.14);
    border-radius: 8px;
    padding: 0.9rem;
}

.production-brief-grid h3 {
    font-size: 1rem;
    margin: 0;
}

.service-opportunity-grid {
    display: grid;
    gap: 0.85rem;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
    margin-top: 1rem;
}

.service-opportunity-card {
    background: #fffdf9;
    display: grid;
    gap: 0.7rem;
}

.service-opportunity-card p,
.service-opportunity-card small {
    color: var(--color-muted);
    line-height: 1.5;
    margin: 0;
}

.service-opportunity-card small {
    font-weight: 700;
}

.service-opportunity-header {
    align-items: start;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
}

.service-opportunity-header strong {
    overflow-wrap: anywhere;
}

.manifest-summary {
    background: #f7faf8;
    border: 1px solid rgba(39, 116, 107, 0.18);
    border-radius: 8px;
    display: grid;
    gap: 0.55rem;
    margin-top: 1rem;
    padding: 1rem;
}

.manifest-summary strong {
    font-size: 1.05rem;
}

.manifest-summary p {
    color: var(--color-muted);
    line-height: 1.55;
    margin: 0;
}

.manifest-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 1rem;
}

.manifest-grid section,
.manifest-focus {
    border: 1px solid rgba(38, 63, 61, 0.14);
    border-radius: 8px;
    padding: 0.9rem;
}

.manifest-grid h3,
.manifest-focus h3 {
    font-size: 1rem;
    margin: 0;
}

.chapter-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}

.chapter-chip-list span {
    background: #eef5f2;
    border: 1px solid #c9ded7;
    border-radius: 999px;
    color: var(--color-primary-dark);
    display: inline-flex;
    font-size: 0.84rem;
    font-weight: 800;
    gap: 0.35rem;
    padding: 0.38rem 0.65rem;
}

.media-organization-actions {
    align-items: end;
    display: grid;
    gap: 0.65rem;
    grid-template-columns: minmax(12rem, 1fr) auto;
}

.media-organization-actions label {
    color: var(--color-ink);
    font-size: 0.9rem;
    font-weight: 800;
    grid-column: 1 / -1;
}

.compact-detail-list {
    gap: 0.55rem;
    margin-top: 0;
}

.upload-dropzone {
    background: #f7faf8;
    border: 1px dashed rgba(39, 116, 107, 0.48);
    border-radius: 8px;
    display: grid;
    gap: 0.65rem;
    margin-top: 1rem;
    padding: 1rem;
}

.upload-dropzone label {
    font-weight: 800;
}

.upload-dropzone input {
    background: #fff;
    border: 1px solid rgba(38, 63, 61, 0.18);
    border-radius: 8px;
    inline-size: 100%;
    padding: 0.8rem;
}

.upload-dropzone p {
    color: var(--color-muted);
    font-size: 0.92rem;
    margin: 0;
}

.upload-status,
.upload-result-summary {
    border-radius: 8px;
    display: grid;
    gap: 0.25rem;
    margin-top: 1rem;
    padding: 1rem;
}

.upload-status {
    background: rgba(39, 116, 107, 0.08);
    border: 1px solid rgba(39, 116, 107, 0.2);
}

.upload-result-summary.is-success {
    background: rgba(39, 116, 107, 0.08);
    border: 1px solid rgba(39, 116, 107, 0.2);
}

.upload-result-summary.has-errors {
    background: rgba(157, 78, 43, 0.08);
    border: 1px solid rgba(157, 78, 43, 0.22);
}

.upload-result-list {
    display: grid;
    gap: 0.65rem;
    list-style: none;
    margin: 1rem 0 0;
    padding: 0;
}

.upload-result-list li {
    border: 1px solid rgba(38, 63, 61, 0.14);
    border-radius: 8px;
    display: grid;
    gap: 0.2rem;
    padding: 0.85rem;
}

.upload-result-list li.accepted {
    border-left: 4px solid var(--color-primary);
}

.upload-result-list li.rejected {
    border-left: 4px solid #9d4e2b;
}

.visually-hidden {
    block-size: 1px;
    border: 0;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    inline-size: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
}

.advanced-upload-section {
    min-width: 0;
}

.advanced-uploader {
    display: grid;
    gap: 1rem;
}

.advanced-upload-header {
    align-items: start;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.advanced-upload-header h2 {
    margin: 0;
}

.advanced-upload-header p:not(.eyebrow) {
    color: var(--color-muted);
    line-height: 1.55;
    margin: 0.5rem 0 0;
}

.advanced-upload-metrics {
    background: #f7faf8;
    border: 1px solid rgba(39, 116, 107, 0.18);
    border-radius: 8px;
    display: grid;
    gap: 0.25rem;
    min-inline-size: 9rem;
    padding: 0.85rem;
    text-align: right;
}

.advanced-upload-metrics span {
    color: var(--color-muted);
    font-size: 0.82rem;
    font-weight: 800;
    text-transform: uppercase;
}

.advanced-upload-metrics strong {
    color: var(--color-primary);
    font-size: 1.65rem;
    line-height: 1;
}

.advanced-upload-dropzone {
    background: #f7faf8;
    border: 2px dashed rgba(39, 116, 107, 0.45);
    border-radius: 8px;
    display: grid;
    gap: 1rem;
    padding: clamp(1rem, 3vw, 1.5rem);
}

.advanced-upload-dropzone.is-dragging {
    background: #eef5f2;
    border-color: var(--color-primary);
}

.advanced-upload-dropzone-copy {
    display: grid;
    gap: 0.3rem;
}

.advanced-upload-dropzone-copy strong {
    font-size: 1.1rem;
}

.advanced-upload-dropzone-copy span,
.advanced-upload-help,
.advanced-upload-disabled {
    color: var(--color-muted);
    line-height: 1.5;
    margin: 0;
}

.advanced-upload-disabled {
    color: #8f3b25;
    font-weight: 800;
}

.advanced-upload-actions,
.advanced-upload-toolbar,
.advanced-upload-item-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.advanced-upload-resume,
.advanced-upload-status {
    border-radius: 8px;
    display: grid;
    gap: 0.25rem;
    padding: 0.9rem;
}

.advanced-upload-resume {
    background: #fff8ed;
    border: 1px solid #e9cfa7;
}

.advanced-upload-resume span {
    color: var(--color-muted);
}

.advanced-upload-status {
    background: rgba(39, 116, 107, 0.08);
    border: 1px solid rgba(39, 116, 107, 0.2);
}

.advanced-upload-toolbar {
    border-bottom: 1px solid var(--color-line);
    padding-bottom: 0.85rem;
}

.advanced-upload-toolbar .button-secondary {
    min-height: 2.35rem;
    padding: 0.55rem 0.85rem;
}

.advanced-upload-queue {
    display: grid;
    gap: 0.85rem;
}

.advanced-upload-item {
    border: 1px solid rgba(38, 63, 61, 0.16);
    border-left: 4px solid var(--color-primary);
    border-radius: 8px;
    display: grid;
    gap: 0.7rem;
    padding: 0.9rem;
}

.advanced-upload-item.is-failed,
.advanced-upload-item.is-missing,
.advanced-upload-item.is-aborted,
.advanced-upload-item.is-expired {
    border-left-color: #8f3b25;
}

.advanced-upload-item.is-duplicate-skipped {
    border-left-color: var(--color-accent);
}

.advanced-upload-item.is-completed {
    background: #f7faf8;
}

.advanced-upload-item-main {
    min-width: 0;
}

.advanced-upload-item-main strong {
    display: block;
    overflow-wrap: anywhere;
}

.advanced-upload-item-main span,
.advanced-upload-item-meta {
    color: var(--color-muted);
    font-size: 0.9rem;
    line-height: 1.45;
}

.advanced-upload-progress {
    background: #e8e1d8;
    border-radius: 999px;
    block-size: 0.65rem;
    overflow: hidden;
}

.advanced-upload-progress span {
    background: var(--color-primary);
    block-size: 100%;
    display: block;
    transition: inline-size 0.18s ease;
}

.advanced-upload-item-meta {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: space-between;
}

.advanced-upload-item-actions .button-secondary,
.advanced-upload-item-actions .button-danger {
    min-height: 2.25rem;
    padding: 0.5rem 0.75rem;
}

.advanced-upload-log {
    border-top: 1px solid var(--color-line);
    display: grid;
    gap: 0.75rem;
    padding-top: 1rem;
}

.advanced-upload-log-header {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.advanced-upload-log-header h3 {
    margin: 0;
}

.advanced-upload-log-header span {
    color: var(--color-muted);
    font-size: 0.85rem;
    font-weight: 800;
    text-transform: uppercase;
}

.advanced-upload-log ul {
    display: grid;
    gap: 0.55rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.advanced-upload-log li {
    border: 1px solid rgba(38, 63, 61, 0.14);
    border-radius: 8px;
    display: grid;
    gap: 0.2rem;
    padding: 0.7rem;
}

.advanced-upload-log li.is-error {
    background: #fff4f1;
    border-color: #e4b7ab;
}

.advanced-upload-log li.is-warning {
    background: #fff8ed;
    border-color: #e9cfa7;
}

.advanced-upload-log li span {
    color: var(--color-muted);
    line-height: 1.45;
}

.admin-empty.compact {
    padding: 1rem;
}

.disabled-link {
    cursor: not-allowed;
    opacity: 0.62;
    pointer-events: none;
}

.detail-list {
    display: grid;
    gap: 0.85rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 1rem 0 0;
}

.detail-list.single-column {
    grid-template-columns: 1fr;
}

.detail-list div {
    min-width: 0;
}

.detail-list dd {
    color: var(--color-ink);
    line-height: 1.5;
    margin: 0.2rem 0 0;
    overflow-wrap: anywhere;
}

.consent-review dd {
    font-weight: 800;
}

@media (max-width: 680px) {
    .hero {
        min-height: auto;
    }

    .hero-actions,
    .action-row {
        flex-direction: column;
    }

    .memorial-public-hero {
        min-height: 18rem;
    }

    .share-link-row {
        grid-template-columns: 1fr;
    }

    .advanced-upload-header {
        grid-template-columns: 1fr;
    }

    .advanced-upload-metrics {
        text-align: left;
    }

    .advanced-upload-actions,
    .advanced-upload-toolbar,
    .advanced-upload-item-actions {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (max-width: 980px) {
    .intake-layout {
        grid-template-columns: 1fr;
    }

    .admin-detail-layout {
        grid-template-columns: 1fr;
    }

    .project-detail-grid {
        grid-template-columns: 1fr;
    }

    .memorial-public-grid {
        grid-template-columns: 1fr;
    }

    .admin-edit-panel {
        position: static;
    }
}

@media (max-width: 680px) {
    .form-grid,
    .checkbox-grid,
    .checkbox-grid.memorial-page-options,
    .confirmation-panel dl,
    .manifest-grid,
    .people-organization-layout,
    .production-brief-grid,
    .media-organization-actions,
    .detail-list {
        grid-template-columns: 1fr;
    }

    .form-actions {
        flex-direction: column;
    }

    .proof-actions {
        flex-direction: column;
    }

    .resource-hero-actions,
    .resource-card-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .resource-cluster-nav {
        flex-direction: column;
    }

    .resource-cluster-nav a {
        text-align: center;
    }
}

@media (max-width: 840px) {
    .resource-playbook,
    .resource-followup,
    .trust-callout {
        grid-template-columns: 1fr;
    }

    .trust-principles {
        grid-template-columns: 1fr;
    }
}

.upload-page {
    background:
        linear-gradient(135deg, rgba(238, 245, 242, 0.88), rgba(255, 250, 244, 0.95) 42%, rgba(255, 242, 232, 0.78)),
        var(--color-surface);
    min-height: calc(100vh - 1px);
}

.upload-page-intro {
    max-width: 980px;
}

.upload-page > .action-row {
    margin-top: 0;
}

.upload-workspace-layout {
    align-items: start;
    display: grid;
    gap: clamp(1rem, 2vw, 1.5rem);
    grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
}

.upload-context-pane {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(255, 250, 244, 0.96)),
        #fff;
    border: 1px solid rgba(38, 63, 61, 0.16);
    border-radius: 8px;
    box-shadow: 0 22px 60px rgba(43, 37, 32, 0.12);
    display: grid;
    gap: 1rem;
    overflow: hidden;
    padding: clamp(1rem, 2.3vw, 1.5rem);
    position: sticky;
    top: 1rem;
}

.upload-context-pane::before {
    background: linear-gradient(90deg, var(--color-primary), #a95e43 52%, #d7a24e);
    block-size: 0.35rem;
    content: "";
    inline-size: calc(100% + 3rem);
    margin: calc(clamp(1rem, 2.3vw, 1.5rem) * -1) 0 0 calc(clamp(1rem, 2.3vw, 1.5rem) * -1);
}

.upload-context-pane h2 {
    font-size: clamp(1.6rem, 2.8vw, 2.35rem);
    line-height: 1.05;
    margin: 0;
}

.upload-context-pane p {
    color: var(--color-muted);
    line-height: 1.6;
    margin: 0;
}

.upload-context-highlight {
    background: #eef5f2;
    border: 1px solid #c9ded7;
    border-radius: 8px;
    display: grid;
    gap: 0.3rem;
    padding: 1rem;
}

.upload-context-highlight span,
.upload-context-highlight small,
.upload-context-list dt,
.upload-instruction-list span {
    color: var(--color-muted);
}

.upload-context-highlight span,
.upload-context-list dt {
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.upload-context-highlight strong {
    color: var(--color-primary-dark);
    font-size: 1.35rem;
}

.upload-context-list {
    margin: 0;
}

.upload-instruction-list {
    display: grid;
    gap: 0.7rem;
}

.upload-instruction-list div {
    border-left: 4px solid rgba(178, 107, 63, 0.65);
    display: grid;
    gap: 0.2rem;
    padding: 0.2rem 0 0.2rem 0.85rem;
}

.upload-instruction-list strong {
    color: var(--color-ink);
}

.upload-instruction-list span {
    line-height: 1.45;
}

.advanced-upload-section {
    min-width: 0;
}

.advanced-uploader {
    color: var(--color-ink);
    display: grid;
    gap: 1rem;
}

.advanced-uploader-shell {
    align-items: stretch;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
}

.advanced-upload-stage-panel,
.advanced-upload-status-pane,
.advanced-upload-queue-panel {
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(38, 63, 61, 0.16);
    border-radius: 8px;
    box-shadow: 0 22px 60px rgba(43, 37, 32, 0.11);
}

.advanced-upload-stage-panel {
    background:
        linear-gradient(155deg, rgba(250, 253, 250, 0.96), rgba(234, 244, 240, 0.92) 48%, rgba(255, 241, 229, 0.9)),
        #fff;
    display: grid;
    gap: 1rem;
    overflow: hidden;
    padding: clamp(1rem, 2.5vw, 1.5rem);
}

.advanced-upload-header {
    display: block;
}

.advanced-upload-header h2 {
    font-size: clamp(1.7rem, 3vw, 2.7rem);
    line-height: 1.05;
    margin: 0;
}

.advanced-upload-header p:not(.eyebrow) {
    color: var(--color-muted);
    line-height: 1.6;
    margin: 0.55rem 0 0;
    max-width: 60rem;
}

.advanced-upload-dropzone {
    align-items: center;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.7), rgba(245, 239, 230, 0.48)),
        #fffdf9;
    border: 1px solid rgba(38, 63, 61, 0.18);
    border-radius: 8px;
    display: grid;
    gap: 1rem;
    justify-items: center;
    min-block-size: clamp(34rem, 54vw, 48rem);
    overflow: hidden;
    padding: clamp(1rem, 2vw, 1.35rem) clamp(1rem, 2vw, 1.35rem) clamp(6.5rem, 11vw, 9rem);
    position: relative;
}

.advanced-upload-dropzone::before {
    border: 2px dashed rgba(39, 116, 107, 0.32);
    border-radius: 8px;
    content: "";
    inset: 0.75rem;
    pointer-events: none;
    position: absolute;
    transition: border-color 0.18s ease, transform 0.18s ease;
}

.advanced-upload-dropzone.is-dragging {
    background:
        linear-gradient(180deg, rgba(238, 245, 242, 0.96), rgba(255, 248, 237, 0.88)),
        #eef5f2;
    border-color: rgba(45, 80, 71, 0.42);
}

.advanced-upload-dropzone.is-dragging::before {
    border-color: var(--color-primary);
    transform: scale(0.985);
}

.advanced-upload-folder-stage {
    align-items: center;
    aspect-ratio: 500 / 715;
    display: grid;
    inline-size: min(100%, 32rem);
    justify-items: center;
    position: relative;
}

.advanced-upload-folder-message {
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(38, 63, 61, 0.14);
    border-radius: 999px;
    box-shadow: 0 12px 32px rgba(43, 37, 32, 0.1);
    color: var(--color-primary-dark);
    font-size: clamp(0.92rem, 1.7vw, 1.05rem);
    font-weight: 900;
    inline-size: min(90%, 25rem);
    inset-block-start: 9%;
    line-height: 1.25;
    opacity: 0;
    padding: 0.7rem 1rem;
    position: absolute;
    text-align: center;
    transform: translateY(0.4rem);
    transition: opacity 0.18s ease, transform 0.18s ease;
    z-index: 20;
}

.advanced-upload-dropzone.is-dragging .advanced-upload-folder-message {
    opacity: 1;
    transform: translateY(0);
}

.advanced-upload-folder-art {
    animation: uploadFolderFloat 5s ease-in-out infinite;
    aspect-ratio: 500 / 715;
    inline-size: 100%;
    position: relative;
    transform-origin: 50% 58%;
}

.advanced-upload-folder-art::after {
    background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.38) 0%, rgba(0, 0, 0, 0.2) 45%, rgba(0, 0, 0, 0) 72%);
    block-size: 11%;
    content: "";
    inline-size: 78%;
    inset-block-end: 21%;
    inset-inline-start: 11%;
    opacity: 0.74;
    position: absolute;
    transform: scaleX(1.04);
    z-index: 2;
}

.folder-layer {
    pointer-events: none;
    position: absolute;
    user-select: none;
}

.folder-layer-reflection {
    animation: uploadReflectionFloat 5s ease-in-out infinite;
    inline-size: 93%;
    inset-block-end: 0;
    inset-inline-start: 3.5%;
    opacity: 0.78;
    z-index: 1;
}

.folder-layer-back-deep {
    inline-size: 100%;
    inset-block-start: 24.5%;
    inset-inline-start: 0;
    z-index: 3;
}

.folder-layer-back {
    inline-size: 74%;
    inset-block-start: 24%;
    inset-inline-start: 13%;
    transform-origin: 50% 85%;
    transition: transform 0.24s ease;
    z-index: 4;
}

.folder-layer-media {
    inline-size: 48%;
    inset-block-start: 0;
    inset-inline-start: 38%;
    opacity: 0;
    transform: translateY(0.5rem) scale(0.96);
    transition: transform 0.24s ease, opacity 0.24s ease;
    visibility: hidden;
    z-index: 5;
}

.folder-layer-heart {
    inline-size: 49%;
    inset-block-start: 25%;
    inset-inline-start: 14%;
    z-index: 6;
}

.folder-layer-front {
    inline-size: 74%;
    inset-block-start: 34%;
    inset-inline-start: 13%;
    z-index: 8;
}

.folder-layer-arrow {
    animation: uploadArrowPulse 2.8s ease-in-out infinite;
    inline-size: 39%;
    inset-block-start: 43%;
    inset-inline-start: 19%;
    z-index: 9;
}

.advanced-upload-dropzone.is-dragging .folder-layer-back,
.advanced-uploader.is-uploading .folder-layer-back {
    transform: translateY(-0.55rem) rotate(-2deg);
}

.advanced-upload-dropzone.is-dragging .folder-layer-media {
    opacity: 1;
    transform: translateY(-2.1rem) scale(1.05) rotate(2deg);
    visibility: visible;
}

.advanced-uploader.is-uploading .folder-layer-media {
    opacity: 0;
    transform: translateY(0.5rem) scale(0.96);
    visibility: hidden;
}

.advanced-upload-preview-shelf {
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 18;
}

.advanced-upload-flying-preview {
    align-items: center;
    background: #fff;
    border: 3px solid #fff;
    border-radius: 8px;
    box-shadow: 0 18px 36px rgba(43, 37, 32, 0.22);
    display: grid;
    inline-size: clamp(5.4rem, 15vw, 7.6rem);
    inset-block-start: var(--preview-y, 19%);
    inset-inline-start: var(--preview-x, 50%);
    justify-items: center;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    transform: translate(-50%, 1rem) rotate(var(--preview-rotate, -5deg)) scale(0.92);
    transition: opacity 0.28s ease, transform 0.28s ease;
}

.advanced-upload-flying-preview::before {
    content: "";
    display: block;
    padding-block-start: 76%;
}

.advanced-upload-flying-preview img,
.advanced-upload-flying-preview span {
    block-size: 100%;
    inline-size: 100%;
    inset: 0;
    position: absolute;
}

.advanced-upload-flying-preview img {
    object-fit: cover;
}

.advanced-upload-flying-preview span {
    align-items: center;
    background: #173c37;
    color: #fff;
    display: grid;
    font-size: 0.72rem;
    font-weight: 900;
    justify-items: center;
}

.advanced-upload-flying-preview.is-visible {
    opacity: 1;
    transform: translate(-50%, 0) rotate(var(--preview-rotate, -3deg)) scale(1);
}

.advanced-upload-flying-preview.is-plopping {
    opacity: 0;
    transform: translate(calc(-50% + var(--preview-plop-x, 0rem)), 13rem) rotate(var(--preview-rotate, 7deg)) scale(0.22);
    transition: opacity 0.55s ease, transform 0.9s cubic-bezier(0.2, 0.85, 0.25, 1);
}

.advanced-upload-floor-controls {
    align-items: center;
    background: linear-gradient(180deg, rgba(255, 253, 249, 0.92), rgba(255, 253, 249, 0.74));
    border-radius: 8px;
    bottom: clamp(1.1rem, 3vw, 2.4rem);
    display: grid;
    gap: 0.75rem;
    inline-size: min(calc(100% - 2rem), 38rem);
    inset-inline-start: 50%;
    justify-items: center;
    padding: 0.85rem;
    position: absolute;
    transform: translateX(-50%);
    z-index: 24;
}

.advanced-upload-dropzone-copy {
    display: grid;
    gap: 0.35rem;
    max-width: 34rem;
    text-align: center;
    z-index: 2;
}

.advanced-upload-dropzone-copy strong {
    font-size: clamp(1.2rem, 2.4vw, 1.6rem);
}

.advanced-upload-dropzone-copy span,
.advanced-upload-help,
.advanced-upload-disabled {
    color: var(--color-muted);
    line-height: 1.5;
    margin: 0;
}

.advanced-upload-disabled {
    color: #8f3b25;
    font-weight: 900;
}

.advanced-upload-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    justify-content: center;
    z-index: 2;
}

.advanced-upload-resume,
.advanced-upload-status {
    border-radius: 8px;
    display: grid;
    gap: 0.3rem;
    padding: 0.9rem 1rem;
}

.advanced-upload-resume {
    background: #fff8ed;
    border: 1px solid #e9cfa7;
}

.advanced-upload-resume span {
    color: var(--color-muted);
}

.advanced-upload-status {
    background: rgba(39, 116, 107, 0.08);
    border: 1px solid rgba(39, 116, 107, 0.2);
}

.advanced-upload-status-pane {
    align-content: start;
    display: grid;
    gap: 1rem;
    padding: 1rem;
}

.advanced-upload-total-card {
    background:
        linear-gradient(145deg, rgba(45, 80, 71, 0.96), rgba(24, 52, 47, 0.96)),
        #1f3933;
    border-radius: 8px;
    color: #fff;
    display: grid;
    gap: 0.45rem;
    overflow: hidden;
    padding: 1rem;
    position: relative;
}

.advanced-upload-total-card::after {
    background: linear-gradient(90deg, rgba(215, 162, 78, 0.28), rgba(255, 255, 255, 0.08));
    block-size: 100%;
    content: "";
    inline-size: var(--upload-progress);
    inset-block-start: 0;
    inset-inline-start: 0;
    opacity: 0.55;
    position: absolute;
    transition: inline-size 0.2s ease;
}

.advanced-upload-total-card > * {
    position: relative;
    z-index: 1;
}

.advanced-upload-total-card span,
.advanced-upload-total-card small {
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.advanced-upload-total-card strong {
    font-size: clamp(2.3rem, 6vw, 4rem);
    line-height: 0.95;
}

.advanced-upload-total-bar {
    background: rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    block-size: 0.55rem;
    overflow: hidden;
}

.advanced-upload-total-bar span {
    background: #f3c76d;
    block-size: 100%;
    display: block;
    inline-size: 0;
    transition: inline-size 0.2s ease;
}

.advanced-upload-stat-grid {
    display: grid;
    gap: 0.65rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.advanced-upload-stat-grid div,
.advanced-upload-folder-status {
    background: #fffdf9;
    border: 1px solid rgba(38, 63, 61, 0.14);
    border-radius: 8px;
    display: grid;
    gap: 0.2rem;
    padding: 0.75rem;
}

.advanced-upload-stat-grid span,
.advanced-upload-folder-status span,
.advanced-upload-folder-status small {
    color: var(--color-muted);
    font-size: 0.75rem;
    font-weight: 900;
    text-transform: uppercase;
}

.advanced-upload-stat-grid strong {
    color: var(--color-primary-dark);
    font-size: 1.6rem;
    line-height: 1;
}

.advanced-upload-folder-status strong {
    color: var(--color-primary-dark);
    font-size: 1rem;
    line-height: 1.3;
}

.advanced-upload-log {
    border-top: 1px solid var(--color-line);
    display: grid;
    gap: 0.75rem;
    padding-top: 1rem;
}

.advanced-upload-log-header {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.advanced-upload-log-header h3 {
    font-size: 1rem;
    margin: 0;
}

.advanced-upload-log-header span {
    color: var(--color-muted);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.advanced-upload-log ul {
    display: grid;
    gap: 0.55rem;
    list-style: none;
    margin: 0;
    max-block-size: 18rem;
    overflow: auto;
    padding: 0;
}

.advanced-upload-log li {
    border: 1px solid rgba(38, 63, 61, 0.14);
    border-radius: 8px;
    display: grid;
    gap: 0.2rem;
    padding: 0.7rem;
}

.advanced-upload-log li.is-error {
    background: #fff4f1;
    border-color: #e4b7ab;
}

.advanced-upload-log li.is-warning {
    background: #fff8ed;
    border-color: #e9cfa7;
}

.advanced-upload-log li span {
    color: var(--color-muted);
    line-height: 1.45;
}

.advanced-upload-queue-panel {
    display: grid;
    gap: 1rem;
    padding: 1rem;
}

.advanced-upload-toolbar {
    align-items: center;
    border-bottom: 1px solid var(--color-line);
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    padding-bottom: 0.85rem;
}

.advanced-upload-toolbar .button-secondary {
    min-height: 2.35rem;
    padding: 0.55rem 0.85rem;
}

.advanced-upload-toolbar .button-secondary.is-active {
    background: var(--color-primary);
    color: #fff;
}

.advanced-upload-queue,
.advanced-upload-queue-section,
.advanced-upload-queue-list {
    display: grid;
    gap: 0.85rem;
}

.advanced-upload-queue-heading {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.advanced-upload-queue-heading h3 {
    font-size: 1rem;
    margin: 0;
}

.advanced-upload-queue-heading span {
    color: var(--color-muted);
    font-size: 0.8rem;
    font-weight: 900;
    text-transform: uppercase;
}

.advanced-upload-item {
    align-items: center;
    background: #fff;
    border: 1px solid rgba(38, 63, 61, 0.16);
    border-left: 4px solid var(--color-primary);
    border-radius: 8px;
    display: grid;
    gap: 0.85rem;
    grid-template-columns: 4.25rem minmax(0, 1fr) auto;
    padding: 0.85rem;
}

.advanced-upload-item.is-current {
    background: #f7faf8;
    border-color: rgba(45, 80, 71, 0.42);
    box-shadow: 0 0 0 3px rgba(45, 80, 71, 0.12);
}

.advanced-upload-item.is-failed,
.advanced-upload-item.is-missing,
.advanced-upload-item.is-aborted,
.advanced-upload-item.is-expired {
    border-left-color: #8f3b25;
}

.advanced-upload-item.is-duplicate-skipped {
    border-left-color: var(--color-accent);
}

.advanced-upload-item.is-completed {
    background: #fbfdfb;
}

.advanced-upload-media-tile {
    align-items: center;
    aspect-ratio: 1;
    background: #eef5f2;
    border: 1px solid rgba(38, 63, 61, 0.14);
    border-radius: 8px;
    display: grid;
    justify-items: center;
    overflow: hidden;
}

.advanced-upload-media-tile img {
    block-size: 100%;
    inline-size: 100%;
    object-fit: cover;
}

.advanced-upload-media-tile span {
    color: #fff;
    font-size: 0.72rem;
    font-weight: 900;
}

.advanced-upload-media-tile.is-image {
    background: #dceee7;
}

.advanced-upload-media-tile.is-video {
    background: #2f4354;
}

.advanced-upload-media-tile.is-audio {
    background: #8b5c3e;
}

.advanced-upload-media-tile.is-file {
    background: #5f6b61;
}

.advanced-upload-item-body,
.advanced-upload-item-main {
    display: grid;
    gap: 0.45rem;
    min-width: 0;
}

.advanced-upload-current-label {
    color: var(--color-accent);
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.advanced-upload-item-main strong {
    display: block;
    font-weight: 900;
    overflow-wrap: anywhere;
}

.advanced-upload-item-main span:not(.advanced-upload-current-label),
.advanced-upload-item-meta {
    color: var(--color-muted);
    font-size: 0.9rem;
    line-height: 1.45;
}

.advanced-upload-progress {
    background: #e8e1d8;
    border-radius: 999px;
    block-size: 0.65rem;
    overflow: hidden;
}

.advanced-upload-progress span {
    background: linear-gradient(90deg, var(--color-primary), #d7a24e);
    block-size: 100%;
    display: block;
    transition: inline-size 0.18s ease;
}

.advanced-upload-item-meta {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: space-between;
}

.advanced-upload-item-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: end;
}

.advanced-upload-item-actions .button-secondary,
.advanced-upload-item-actions .button-danger {
    min-height: 2.25rem;
    padding: 0.5rem 0.75rem;
}

@keyframes uploadFolderFloat {
    0%,
    100% {
        transform: translateY(0) rotate(-0.25deg);
    }

    50% {
        transform: translateY(-0.75rem) rotate(0.45deg);
    }
}

@keyframes uploadReflectionFloat {
    0%,
    100% {
        opacity: 0.72;
        transform: translateY(0) scaleX(1);
    }

    50% {
        opacity: 0.52;
        transform: translateY(0.35rem) scaleX(0.94);
    }
}

@keyframes uploadArrowPulse {
    0%,
    100% {
        opacity: 0.9;
        transform: translateY(0) scale(1);
    }

    50% {
        opacity: 1;
        transform: translateY(-0.35rem) scale(1.03);
    }
}

@media (max-width: 1180px) {
    .upload-workspace-layout,
    .advanced-uploader-shell {
        grid-template-columns: 1fr;
    }

    .upload-context-pane {
        position: static;
    }
}

@media (max-width: 760px) {
    .advanced-upload-dropzone {
        min-block-size: 32rem;
    }

    .advanced-upload-actions,
    .advanced-upload-toolbar,
    .advanced-upload-item-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .advanced-upload-stat-grid {
        grid-template-columns: 1fr;
    }

    .advanced-upload-item {
        align-items: stretch;
        grid-template-columns: 3.75rem minmax(0, 1fr);
    }

    .advanced-upload-item-actions {
        grid-column: 1 / -1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .advanced-upload-folder-art,
    .folder-layer-reflection,
    .folder-layer-arrow {
        animation: none;
    }

    .advanced-upload-flying-preview,
    .advanced-upload-progress span,
    .advanced-upload-total-bar span,
    .advanced-upload-total-card::after {
        transition: none;
    }
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}
