/**
 * Favorites & notifications dashboards
 */
/* ── Favorites (hero colors in site-ui.css) ── */
        body.favorites-page {
            background: #f3f8ff;
            color: #172033;
        }

        #favorites-count {
            background: #ffffff;
            color: #315b3d;
            border: 1px solid #cfe5d5;
            box-shadow: 0 8px 24px rgba(49, 91, 61, 0.08);
        }

        .favorites-shell {
            background: linear-gradient(180deg, #f3f8ff 0%, #eff6ff 100%);
        }

        #favorites-app > .rounded-2xl {
            border-radius: 18px;
            border-color: #dfeee4;
            box-shadow: 0 18px 45px rgba(23, 32, 51, 0.07);
        }

        .favorites-loading-dot {
            background: #e8f4eb;
        }

        .favorite-list {
            display: grid;
            gap: 16px;
        }

        .favorite-feature-strip {
            display: grid;
            grid-template-columns: minmax(0, 1fr) auto;
            gap: 18px;
            align-items: center;
            margin-bottom: 18px;
            padding: 20px;
            border: 1px solid #dfeee4;
            border-radius: 18px;
            background: #ffffff;
            box-shadow: 0 16px 42px rgba(23, 32, 51, 0.06);
        }

        .favorite-feature-eyebrow {
            display: inline-flex;
            width: fit-content;
            border-radius: 999px;
            padding: 5px 11px;
            background: #e8f4eb;
            color: #315b3d;
            border: 1px solid #cfe5d5;
            font-size: 12px;
            font-weight: 900;
            text-transform: uppercase;
            letter-spacing: 0.04em;
        }

        .favorite-feature-title {
            margin-top: 10px;
            color: #172033;
            font-size: clamp(22px, 2.4vw, 30px);
            line-height: 1.15;
            font-weight: 900;
            letter-spacing: 0;
        }

        .favorite-feature-text {
            margin-top: 8px;
            max-width: 720px;
            color: #50617a;
            font-size: 15px;
            line-height: 1.55;
        }

        .favorite-feature-actions {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            justify-content: flex-end;
        }

        .favorite-feature-button,
        .favorite-feature-secondary {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-height: 42px;
            border-radius: 12px;
            padding: 10px 15px;
            font-size: 14px;
            font-weight: 850;
            line-height: 1;
            white-space: nowrap;
        }

        .favorite-feature-button {
            background: #79ad87;
            color: #ffffff;
        }

        .favorite-feature-button:hover {
            background: #6a9d79;
        }

        .favorite-feature-secondary {
            border: 1px solid #d8d1c6;
            background: #f8fbff;
            color: #315b3d;
        }

        .favorite-card {
            display: grid;
            grid-template-columns: minmax(0, 1fr);
            gap: 20px;
            padding: 20px;
            border: 1px solid #dfeee4;
            border-radius: 18px;
            background: #ffffff;
            box-shadow: 0 16px 42px rgba(23, 32, 51, 0.07);
        }

        @media (min-width: 960px) {
            .favorite-card {
                grid-template-columns: minmax(0, 1fr) minmax(0, 320px);
            }
        }

        .favorite-card-main {
            min-width: 0;
        }

        .favorite-card-top {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 16px;
        }

        .favorite-pills {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }

        .favorite-pill {
            display: inline-flex;
            align-items: center;
            min-height: 26px;
            padding: 4px 10px;
            border-radius: 999px;
            font-size: 12px;
            line-height: 1;
            font-weight: 800;
        }

        .favorite-pill-type {
            background: #e8f4eb;
            color: #315b3d;
        }

        .favorite-pill-data {
            background: #f4f2ed;
            color: #56616f;
        }

        .favorite-remove-button {
            width: auto !important;
            flex: 0 0 auto;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-height: 34px;
            padding: 7px 11px;
            border: 1px solid #f2c9c9;
            border-radius: 999px;
            background: #fff7f7;
            color: #9f2929;
            font-size: 12px;
            font-weight: 800;
            line-height: 1;
        }

        .favorite-remove-button:hover {
            background: #ffecec;
            border-color: #ebb0b0;
        }

        .favorite-title {
            margin-top: 14px;
            color: #172033;
            font-size: clamp(20px, 2vw, 26px);
            line-height: 1.15;
            font-weight: 900;
            letter-spacing: 0;
        }

        .favorite-address {
            margin-top: 6px;
            color: #50617a;
            font-size: 15px;
            line-height: 1.45;
        }

        .favorite-next {
            margin-top: 16px;
            padding: 14px 16px;
            border: 1px solid #dfeee4;
            border-radius: 14px;
            background: #f7fbf8;
            color: #31405a;
            font-size: 14px;
            line-height: 1.5;
        }

        .favorite-disclaimer {
            margin-top: 10px;
            color: #667085;
            font-size: 12px;
            line-height: 1.5;
        }

        .favorite-controls {
            padding: 16px;
            border: 1px solid #eee6dc;
            border-radius: 16px;
            background: #f8fbff;
        }

        .favorite-controls-title {
            margin: 0 0 12px;
            color: #315b3d;
            font-size: 13px;
            font-weight: 900;
            text-transform: uppercase;
            letter-spacing: 0.04em;
        }

        .favorite-form-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 12px;
        }

        .favorite-field {
            display: grid;
            gap: 6px;
            color: #172033;
            font-size: 13px;
            font-weight: 800;
        }

        .favorite-field-wide {
            grid-column: 1 / -1;
        }

        .favorite-field select,
        .favorite-field input,
        .favorite-field textarea {
            width: 100%;
            border: 1px solid #d8d1c6;
            border-radius: 12px;
            background: #ffffff;
            color: #172033;
            font-size: 14px;
            font-weight: 650;
            box-shadow: 0 1px 2px rgba(23, 32, 51, 0.04);
        }

        .favorite-field select,
        .favorite-field input {
            min-height: 42px;
            padding: 0 12px;
        }

        .favorite-field textarea {
            min-height: 86px;
            padding: 11px 12px;
            resize: vertical;
        }

        .favorite-compare {
            margin-top: 28px;
            padding: 20px;
            border: 1px solid #dfeee4;
            border-radius: 18px;
            background: #ffffff;
            box-shadow: 0 16px 42px rgba(23, 32, 51, 0.06);
        }

        .favorite-compare-header {
            display: flex;
            justify-content: space-between;
            gap: 18px;
            align-items: flex-start;
        }

        .favorite-compare-badge {
            display: inline-flex;
            border-radius: 999px;
            padding: 5px 11px;
            background: #e8f4eb;
            color: #315b3d;
            border: 1px solid #cfe5d5;
            font-size: 12px;
            font-weight: 900;
            text-transform: uppercase;
            letter-spacing: 0.04em;
        }

        .favorite-compare-title {
            margin-top: 10px;
            color: #172033;
            font-size: 26px;
            line-height: 1.15;
            font-weight: 900;
            letter-spacing: 0;
        }

        .favorite-compare-copy {
            margin-top: 8px;
            color: #50617a;
            font-size: 14px;
            line-height: 1.55;
        }

        .favorite-compare-note {
            flex: 0 0 auto;
            max-width: 260px;
            border: 1px solid #f1dda6;
            border-radius: 14px;
            background: #eff6ff;
            color: #73510f;
            padding: 12px;
            font-size: 13px;
            line-height: 1.45;
            font-weight: 700;
        }

        .favorite-compare-table-wrap {
            margin-top: 18px;
            overflow-x: auto;
            border: 1px solid #e7e2da;
            border-radius: 14px;
            background: #ffffff;
        }

        .favorite-compare-table {
            width: 100%;
            min-width: 820px;
            border-collapse: collapse;
            text-align: left;
            font-size: 14px;
        }

        .favorite-compare-table th {
            background: #f7fbf8;
            color: #315b3d;
            padding: 13px 14px;
            font-size: 12px;
            font-weight: 900;
            text-transform: uppercase;
            letter-spacing: 0.04em;
        }

        .favorite-compare-table td {
            border-top: 1px solid #eee6dc;
            color: #31405a;
            padding: 13px 14px;
            vertical-align: top;
        }

        .favorite-compare-table td:first-child {
            color: #172033;
            font-weight: 900;
        }

        @media (max-width: 900px) {
            .favorite-feature-strip,
            .favorite-card {
                grid-template-columns: 1fr;
                padding: 16px;
            }

            .favorite-feature-actions {
                justify-content: flex-start;
            }

            .favorite-compare-header {
                flex-direction: column;
            }

            .favorite-compare-note {
                max-width: none;
            }

            .favorite-form-grid {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 560px) {
            .favorite-card-top {
                flex-direction: column;
            }

            .favorite-remove-button {
                align-self: flex-start;
            }
        }

/* ── Notifications (hero colors in site-ui.css) ── */
        body.notifications-page {
            background: #f3f8ff;
            color: #172033;
        }

        .notifications-shell {
            min-height: 100vh;
            background: linear-gradient(180deg, #f3f8ff 0%, #eff6ff 100%);
        }

        .notification-count-chip,
        .notification-soon-chip {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            min-height: 32px;
            border-radius: 999px;
            padding: 6px 14px;
            font-size: 14px;
            font-weight: 800;
        }

        .notification-count-chip {
            background: #ffffff;
            color: #315b3d;
            border: 1px solid #cfe5d5;
            box-shadow: 0 8px 24px rgba(49, 91, 61, 0.08);
        }

        .notification-soon-chip {
            background: #eff6ff;
            color: #73510f;
            border: 1px solid #f1dda6;
        }

        .notifications-loading-card,
        .reminder-login-card,
        .reminder-form-card,
        .reminder-empty-card,
        .reminder-card {
            border: 1px solid #dfeee4;
            border-radius: 18px;
            background: #ffffff;
            box-shadow: 0 18px 45px rgba(23, 32, 51, 0.07);
        }

        .notifications-loading-card {
            padding: 40px;
            text-align: center;
        }

        .notifications-loading-dot {
            width: 48px;
            height: 48px;
            margin: 0 auto;
            border-radius: 999px;
            background: #e8f4eb;
            animation: pulse 1.6s ease-in-out infinite;
        }

        .reminder-login-card {
            display: grid;
            grid-template-columns: minmax(0, 1fr) 260px;
            gap: 28px;
            align-items: center;
            padding: 28px;
        }

        .reminder-login-badge,
        .reminder-form-badge,
        .reminder-pill {
            display: inline-flex;
            align-items: center;
            width: fit-content;
            border-radius: 999px;
            padding: 6px 12px;
            font-size: 12px;
            line-height: 1;
            font-weight: 900;
            text-transform: uppercase;
            letter-spacing: 0.04em;
        }

        .reminder-login-badge {
            background: #eff6ff;
            color: #73510f;
            border: 1px solid #f1dda6;
        }

        .reminder-form-badge,
        .reminder-pill-type {
            background: #e8f4eb;
            color: #315b3d;
            border: 1px solid #cfe5d5;
        }

        .reminder-login-card h2,
        .reminder-form-card h2,
        .reminder-empty-card h3 {
            color: #172033;
            letter-spacing: 0;
        }

        .reminder-login-card p,
        .reminder-form-card p,
        .reminder-empty-card p {
            color: #50617a;
        }

        .reminder-login-illustration {
            min-height: 190px;
            border-radius: 16px;
            background: linear-gradient(180deg, #eff6ff 0%, #f8fbff 100%);
            border: 1px solid #dfeee4;
            display: grid;
            place-items: center;
            color: #315b3d;
            text-align: center;
            padding: 18px;
        }

        .reminder-login-illustration svg {
            width: 54px;
            height: 54px;
            margin: 0 auto 10px;
        }

        .reminder-actions {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            margin-top: 22px;
        }

        .reminder-primary-link,
        .reminder-secondary-link,
        .reminder-submit-button,
        .reminder-ghost-button,
        .reminder-action-button {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-height: 42px;
            border-radius: 12px;
            padding: 10px 16px;
            font-size: 14px;
            font-weight: 850;
            line-height: 1;
            white-space: nowrap;
        }

        .reminder-primary-link,
        .reminder-submit-button {
            background: #79ad87;
            color: #ffffff;
        }

        .reminder-primary-link:hover,
        .reminder-submit-button:hover {
            background: #6a9d79;
        }

        .reminder-secondary-link,
        .reminder-ghost-button {
            border: 1px solid #d8d1c6;
            background: #ffffff;
            color: #315b3d;
        }

        .reminder-form-card {
            padding: 24px;
        }

        .reminder-form-header {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 18px;
        }

        .reminder-form-grid {
            margin-top: 20px;
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 14px;
        }

        .reminder-field {
            display: grid;
            gap: 7px;
            color: #172033;
            font-size: 13px;
            font-weight: 850;
        }

        .reminder-field input,
        .reminder-field select {
            width: 100%;
            min-height: 44px;
            border: 1px solid #d8d1c6;
            border-radius: 12px;
            background: #ffffff;
            color: #172033;
            padding: 0 12px;
            font-size: 14px;
            font-weight: 650;
        }

        .reminder-field-wide {
            grid-column: 1 / -1;
        }

        .reminder-section-heading {
            margin: 30px 0 16px;
            display: flex;
            justify-content: space-between;
            gap: 18px;
            align-items: flex-end;
        }

        .reminder-section-heading h2 {
            color: #172033;
            font-size: 26px;
            line-height: 1.2;
            font-weight: 900;
        }

        .reminder-empty-card {
            padding: 32px;
            text-align: center;
        }

        .reminder-list {
            display: grid;
            gap: 16px;
        }

        .reminder-card {
            display: grid;
            grid-template-columns: minmax(0, 1fr) auto;
            gap: 20px;
            padding: 20px;
        }

        .reminder-card-completed {
            background: #f7fbf8;
        }

        .reminder-pills {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }

        .reminder-pill-done {
            background: #e8f4eb;
            color: #315b3d;
        }

        .reminder-pill-email {
            background: #eff6ff;
            color: #73510f;
        }

        .reminder-title {
            margin-top: 12px;
            color: #172033;
            font-size: 22px;
            line-height: 1.2;
            font-weight: 900;
        }

        .reminder-date,
        .reminder-institution {
            margin-top: 5px;
            color: #50617a;
            font-size: 14px;
        }

        .reminder-next {
            margin-top: 14px;
            padding: 14px 16px;
            border: 1px solid #dfeee4;
            border-radius: 14px;
            background: #f7fbf8;
            color: #31405a;
            font-size: 14px;
            line-height: 1.5;
        }

        .reminder-card-actions {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-content: flex-start;
            justify-content: flex-end;
        }

        .reminder-action-button {
            min-height: 36px;
            padding: 8px 12px;
            border: 1px solid #d8d1c6;
            background: #ffffff;
            color: #31405a;
            font-size: 12px;
        }

        .reminder-action-button-edit {
            border-color: #cfe5d5;
            background: #f7fbf8;
            color: #315b3d;
        }

        .reminder-action-button-delete {
            border-color: #f2c9c9;
            background: #fff7f7;
            color: #9f2929;
        }

        @media (max-width: 900px) {
            .reminder-login-card,
            .reminder-card {
                grid-template-columns: 1fr;
            }

            .reminder-form-header,
            .reminder-section-heading {
                flex-direction: column;
                align-items: flex-start;
            }
        }

        @media (max-width: 640px) {
            .reminder-login-card,
            .reminder-form-card,
            .reminder-empty-card,
            .reminder-card {
                padding: 18px;
            }

            .reminder-form-grid {
                grid-template-columns: 1fr;
            }

            .reminder-card-actions {
                justify-content: flex-start;
            }
        }
