:root {
    --nd-outline: #CAC4D0;
    --nd-primary-container: #EADDFF;
    --nd-on-primary-container: #21005D;
    --nd-secondary-container: #E8DEF8;
    --nd-on-secondary-container: #1D192B;
    --nd-surface: #FFFBFE;
    --nd-corner-l: 28px;
    --nd-corner-m: 16px;
    --nd-corner-s: 12px;
}

body {
    background-color: var(--mud-palette-background);
}

.nd-page {
    padding-block: 2.5rem 4rem;
}

.nd-hero {
    display: flex;
    align-items: center;
    gap: 2rem;
    flex-wrap: wrap;
    padding: 2rem 2.5rem;
    margin-bottom: 1.5rem;
    border-radius: var(--nd-corner-l);
    background: linear-gradient(135deg, var(--nd-primary-container) 0%, #F5EDFF 55%, #FFD8E4 100%);
    color: var(--nd-on-primary-container);
}

.nd-hero-image {
    width: 120px;
    height: auto;
}

.nd-hero-text {
    opacity: 0.75;
}

.nd-panel {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 2.5rem;
    padding: 1.75rem;
    margin-bottom: 2.5rem;
    border: 1px solid var(--nd-outline);
    border-radius: var(--nd-corner-l);
    background-color: var(--nd-surface);
}

.nd-panel .mud-picker-paper {
    box-shadow: none;
    background-color: transparent;
}

.nd-actions {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    max-width: 22rem;
}

.nd-hint {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    border-radius: var(--nd-corner-s);
    background-color: var(--nd-secondary-container);
    color: var(--nd-on-secondary-container);
    line-height: 1.4;
}

.nd-print-button {
    border-radius: 999px;
    align-self: flex-start;
    padding-inline: 1.75rem;
}

.nd-plan-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    padding-bottom: 1.25rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid var(--nd-outline);
}

.nd-plan-logo {
    max-height: 110px;
    width: auto;
}

.nd-card {
    overflow: hidden;
    border: 1px solid var(--nd-outline);
    border-radius: var(--nd-corner-m);
    background-color: var(--nd-surface);
}

.nd-card + .nd-card {
    margin-top: 1.25rem;
}

.nd-card-day {
    padding: 0.65rem 1.5rem;
    border-bottom: 1px solid var(--nd-outline);
    background-color: var(--nd-primary-container);
    color: var(--nd-on-primary-container);
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.nd-card-body {
    padding: 1.25rem 1.5rem 1.5rem;
}

.nd-card-address {
    color: var(--mud-palette-text-secondary);
}

.nd-card-line {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-top: 0.5rem;
}

@media print {
    @page {
        margin: 14mm;
    }

    html, body {
        font-size: 1.5rem;
        background: #FFFFFF;
    }

    .noprint {
        display: none !important;
    }

    * {
        box-shadow: none !important;
    }

    .mud-layout,
    .mud-main-content,
    .mud-container,
    .nd-plan,
    .nd-page {
        display: block !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .nd-plan-header {
        break-after: avoid;
        page-break-after: avoid;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .nd-card {
        break-inside: avoid;
        page-break-inside: avoid;
        border-color: #79747E;
        margin: 0 0 8mm 0;
    }
}
