@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid red;
}

.validation-message {
    color: red;
}

#blazor-error-ui {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

.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."
    }

.loading-progress {
    position: absolute;
    display: block;
    width: 8rem;
    height: 8rem;
    inset: 20vh 0 auto 0;
    margin: 0 auto 0 auto;
}

    .loading-progress circle {
        fill: none;
        stroke: #e0e0e0;
        stroke-width: 0.6rem;
        transform-origin: 50% 50%;
        transform: rotate(-90deg);
    }

        .loading-progress circle:last-child {
            stroke: #1b6ec2;
            stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%;
            transition: stroke-dasharray 0.05s ease-in-out;
        }

.loading-progress-text {
    position: absolute;
    text-align: center;
    font-weight: bold;
    inset: calc(20vh + 3.25rem) 0 auto 0.2rem;
}

    .loading-progress-text:after {
        content: var(--blazor-load-percentage-text, "Loading");
    }

code {
    color: #c02d76;
}

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');

:root{font-family:'DM Sans',sans-serif;color:#292820;background:#faf9f5;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}.site-shell{max-width:1440px;margin:auto;overflow:hidden;background:#faf9f5}.topbar{height:82px;display:flex;align-items:center;padding:0 8.3%;border-bottom:1px solid #eae8df;gap:60px}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:#292820;font-size:24px;font-weight:700;letter-spacing:-1.5px}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#e5a48d;color:white;font-family:'Playfair Display',serif;font-size:20px;font-style:italic}.main-nav{display:flex;gap:34px;margin:auto;font-size:13px}.main-nav a{text-decoration:none;color:#8b8980}.main-nav a.active{color:#292820}.nav-cta{background:#292820;color:white;text-decoration:none;padding:13px 18px;border-radius:3px;font-size:12px}.nav-cta span{margin-left:16px;color:#f2b09b}.hero{min-height:620px;position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:48px 12.5% 76px;gap:5%}.hero-copy{max-width:470px;padding-bottom:25px}.eyebrow{font-size:9px;letter-spacing:1.9px;font-weight:700;color:#9c7563;display:flex;align-items:center;gap:9px}.eyebrow-dot{height:7px;width:7px;border-radius:50%;background:#e9a28c}.hero h1,.section-heading h2,.how-copy h2{font-family:'Playfair Display',serif;font-weight:500;letter-spacing:-1.6px}.hero h1{font-size:56px;line-height:1.08;margin:24px 0 18px}.hero h1 em,.section-heading h2 em,.how-copy h2 em{color:#d9947d;font-weight:500}.hero-copy>p{max-width:365px;color:#79776f;font-size:14px;line-height:1.8;margin-bottom:27px}.button{height:47px;padding:0 18px;display:inline-flex;gap:24px;align-items:center;text-decoration:none;font:600 12px 'DM Sans',sans-serif;cursor:pointer}.button-dark{background:#292820;color:#fff}.button-dark span{color:#e8a18b;font-size:17px}.hero-note{display:flex;align-items:center;gap:12px;color:#858279;font-size:10px;margin-top:29px}.avatar-stack{display:flex}.avatar-stack i{font-style:normal;border:2px solid #faf9f5;background:#edcfbd;color:#8e5f53;border-radius:50%;width:25px;height:25px;display:grid;place-items:center;margin-right:-7px;font-size:11px}.avatar-stack i:nth-child(2){background:#d6ded0}.avatar-stack i:nth-child(3){background:#efdba9}.hero-art{height:465px;position:relative}.hero-photo{position:absolute;inset:13px 0 30px 25px;background:linear-gradient(180deg,rgba(36,38,29,.06),rgba(36,38,29,.08)),url('https://images.unsplash.com/photo-1502602898657-3e91760cbb34?auto=format&fit=crop&w=1100&q=85') center 52%/cover;border-radius:48% 48% 3px 3px}.hero-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 62%,rgba(35,34,28,.22))}.photo-stamp{position:absolute;left:-17px;top:64px;width:82px;height:82px;display:grid;align-content:center;justify-content:center;text-align:center;border-radius:50%;background:#e6a18a;color:white;font-size:10px;line-height:1.3;letter-spacing:1px;transform:rotate(-10deg);z-index:1}.photo-stamp span{font-family:'Playfair Display',serif;font-style:italic;font-size:18px;letter-spacing:0}.floating-note{position:absolute;z-index:1;right:-35px;bottom:56px;background:#fffdf8;box-shadow:0 12px 40px #3332;display:flex;align-items:center;gap:12px;padding:16px 20px;transform:rotate(2deg)}.note-icon{font-size:25px;color:#d9947d}.floating-note b{font-family:'Playfair Display',serif;font-size:14px;font-weight:500;line-height:1.2}.floating-note small{display:block;color:#969187;font-size:9px;margin-top:5px}.scribble{position:absolute;right:-39px;top:22px;color:#d9947d;font-size:28px}.hero-bottom{position:absolute;bottom:28px;left:12.5%;right:12.5%;display:flex;align-items:center;gap:15px;color:#a09d92;font-size:8px;letter-spacing:1.2px}.bottom-line{height:1px;background:#dedbd1;flex:1}.ideas-section{padding:85px 12.5% 95px;background:#f2f0e8}.section-heading{display:flex;align-items:end;justify-content:space-between}.section-heading h2,.how-copy h2{font-size:42px;margin:13px 0 0}.section-heading>p{color:#848178;font-size:12px;line-height:1.8}.filters{margin:35px 0 22px;border-top:1px solid #dedbd1;padding-top:18px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filter-label{font-size:8px;letter-spacing:1.3px;color:#a09b8f;margin-right:7px}.filter-chip{border:1px solid #dedbd1;background:transparent;border-radius:30px;padding:9px 14px;color:#66645d;font:500 10px 'DM Sans',sans-serif;cursor:pointer;transition:.2s}.filter-chip.selected,.filter-chip:hover{background:#292820;color:#fff;border-color:#292820}.filter-chip.selected span{color:#f1aa93;margin-left:7px}.cards-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.date-card{background:#fffdf9;min-width:0;transition:transform .25s,box-shadow .25s}.date-card:hover{transform:translateY(-4px);box-shadow:0 14px 35px #302b1812}.card-image{height:180px;position:relative;background-size:cover;background-position:center}.card-image:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0003,transparent 45%,#0004)}.paris-photo{background-image:url('https://images.unsplash.com/photo-1499856871958-5b9627545d1a?auto=format&fit=crop&w=700&q=80')}.market-photo{background-image:url('https://images.unsplash.com/photo-1542838132-92c53300491e?auto=format&fit=crop&w=700&q=80')}.passage-photo{background-image:url('https://images.unsplash.com/photo-1511739001486-6bfe10ce785f?auto=format&fit=crop&w=700&q=80')}.montmartre-photo{background-image:url('https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=700&q=80')}.card-tag,.save-button,.image-caption{position:absolute;z-index:1}.card-tag{top:12px;left:12px;background:#faf9f2eF;padding:7px 9px;font-size:7px;letter-spacing:1px}.save-button{top:8px;right:9px;border:0;background:#fffdf2e8;border-radius:50%;height:29px;width:29px;font-size:17px;color:#d9947d;cursor:pointer}.image-caption{bottom:12px;left:13px;font-family:'Playfair Display',serif;color:#fff;font-size:16px;font-style:italic}.card-content{padding:17px 16px 15px}.card-kicker{font-size:8px;color:#a29e93;letter-spacing:.8px}.card-kicker span{margin:0 4px;color:#d9947d}.card-content h3{font-family:'Playfair Display',serif;font-size:17px;font-weight:500;margin:9px 0 7px}.card-content>p{font-size:10px;line-height:1.65;color:#858178;min-height:49px;margin:0}.card-footer{border-top:1px solid #ece9df;margin-top:15px;padding-top:12px;display:flex;align-items:center;justify-content:space-between}.price-label{display:block;font-size:7px;letter-spacing:1px;color:#a5a095;margin-bottom:4px}.card-footer strong{font-size:15px}.card-footer strong small{font-size:9px;color:#959187;font-weight:400}.arrow-button{border:1px solid #e7e3d8;background:transparent;border-radius:50%;width:30px;height:30px;cursor:pointer}.arrow-button:hover{background:#292820;color:#fff}.more-row{display:flex;align-items:center;justify-content:space-between;margin-top:28px;color:#aaa69b;font-size:8px;letter-spacing:1.2px}.button-outline{background:transparent;color:#302f29;border:1px solid #c9c5b9;height:40px}.button-outline span{color:#d9947d}.empty-state{padding:36px;text-align:center;color:#777}.how-section{padding:95px 15%;display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.how-copy h2{font-size:37px;line-height:1.25}.how-copy>p{font-size:12px;line-height:1.8;color:#817e75;max-width:320px;margin-top:18px}.steps{border-top:1px solid #e5e2d9}.step{display:grid;grid-template-columns:30px 1fr 25px;gap:14px;padding:19px 0;border-bottom:1px solid #e5e2d9;align-items:start}.step>span{font-size:9px;color:#d9947d;letter-spacing:1px;padding-top:3px}.step h3{font-family:'Playfair Display',serif;font-weight:500;font-size:16px;margin:0 0 5px}.step p{font-size:10px;color:#89867d;margin:0;line-height:1.6}.step>b{color:#d9947d;font-weight:400}.footer{border-top:1px solid #eae8df;min-height:83px;display:flex;align-items:center;justify-content:space-between;padding:0 8.3%;color:#98958b;font-size:9px}.footer .brand{font-size:19px}.footer .brand-mark{width:27px;height:27px;font-size:16px}

@media(max-width:900px){.topbar{padding:0 5%;gap:25px}.hero{padding-left:8%;padding-right:8%;gap:2%}.hero h1{font-size:47px}.hero-art{height:400px}.ideas-section{padding:70px 7%}.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.card-image{height:220px}.how-section{padding:75px 8%;gap:6%}.hero-bottom{left:8%;right:8%}}
@media(max-width:600px){.topbar{height:68px;padding:0 20px;justify-content:space-between}.main-nav{display:none}.nav-cta{padding:11px 12px;font-size:10px}.nav-cta span{margin-left:7px}.hero{display:flex;flex-direction:column;align-items:stretch;padding:55px 24px 70px;gap:10px}.hero h1{font-size:43px}.hero-copy{padding:0}.hero-art{height:330px;margin:10px 15px 0}.hero-photo{inset:0 0 15px 10px}.photo-stamp{left:-17px;top:30px}.floating-note{right:-24px;bottom:25px;padding:12px}.hero-bottom{left:24px;right:24px}.section-heading{display:block}.section-heading h2{font-size:34px}.section-heading>p{margin-top:12px}.desktop-only{display:none}.ideas-section{padding:60px 20px}.filters{gap:7px}.filter-label{width:100%;margin-bottom:3px}.filter-chip{padding:8px 11px}.cards-grid{grid-template-columns:1fr;gap:15px}.card-image{height:230px}.card-content{padding:17px}.card-content h3{font-size:19px}.card-content>p{font-size:11px;min-height:0}.more-row{align-items:flex-start;gap:15px;flex-direction:column}.how-section{padding:65px 24px;display:block}.how-copy h2{font-size:31px}.steps{margin-top:30px}.footer{padding:20px 24px;gap:13px;flex-wrap:wrap}.footer>span:nth-child(2){order:3;width:100%}}

/* LoveBudget visual direction */
:root{font-family:'DM Sans',Arial,sans-serif;background:#101522;color:#182033;--lb-pink:#ed1475;--lb-navy:#111725;--lb-light:#fff8fb}.site-shell{max-width:none;background:#fff}.topbar{height:54px;padding:0 max(calc((100% - 1180px)/2),5%);gap:0;background:#101522;border:0;color:white;position:relative;z-index:5}.brand{color:#fff;font-size:18px;letter-spacing:-.6px}.brand-mark{background:none;color:#ff4d9d;width:auto;height:auto;font-size:23px}.brand-pink{color:#f44091}.main-nav{gap:25px;font-size:10px}.main-nav a,.main-nav a.active{color:#eee}.nav-cta{background:#222b3c;border-radius:20px;padding:8px 14px;font-size:10px}.hero{min-height:540px;display:block;padding:86px max(calc((100% - 1180px)/2),8%) 100px;position:relative;color:white;overflow:hidden;background:#151b28}.hero-backdrop{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,15,27,.86) 0%,rgba(10,15,27,.57) 48%,rgba(10,15,27,.1) 100%),linear-gradient(0deg,rgba(13,18,30,.35),transparent 45%),url('https://images.unsplash.com/photo-1516589178581-6cd7833ae3b2?auto=format&fit=crop&w=1800&q=85') center 47%/cover}.hero-copy{position:relative;z-index:1;max-width:100%;padding:0}.hero h1{font-family:'DM Sans',sans-serif;font-weight:700;font-size:42px;letter-spacing:-1px;line-height:1.08;margin:0 0 10px}.hero h1:before{content:'♡ ';color:#ff4d9d}.hero h1 em{color:#ff58a2}.hero-copy>p{color:#f3f2f5;font-size:13px;line-height:1.65;max-width:450px;margin:0 0 22px}.search-panel{display:grid;grid-template-columns:1.1fr 1.1fr 1.1fr auto;gap:0;align-items:stretch;background:white;border-radius:11px;padding:8px;max-width:880px;color:#182033;box-shadow:0 12px 35px #090c1680}.search-panel label{padding:7px 13px;border-right:1px solid #ececf0;display:flex;flex-direction:column;gap:5px;font-size:9px;min-width:0}.search-panel label span{color:#495266}.search-panel label strong{font-size:11px;font-weight:500}.search-panel input[type=range]{width:100%;height:3px;accent-color:var(--lb-pink);margin:2px 0}.search-panel select{border:0;background:white;color:#30384a;font:500 11px 'DM Sans',sans-serif;outline:none}.search-button{border:0;border-radius:8px;background:var(--lb-pink);color:white;padding:0 19px;font:600 11px 'DM Sans',sans-serif;cursor:pointer;white-space:nowrap}.search-button:hover{background:#ca0c61}.hero-benefits{display:flex;gap:27px;margin-top:28px;font-size:9px;color:#fff}.ideas-section{padding:56px max(calc((100% - 1120px)/2),6%) 70px;background:#fbf9fc}.section-heading h2,.how-copy h2{font-family:'DM Sans',sans-serif;letter-spacing:-.8px;font-weight:700}.section-heading h2{font-size:29px}.section-heading h2 em,.how-copy h2 em{color:var(--lb-pink)}.section-heading .eyebrow,.how-section .eyebrow{color:var(--lb-pink)}.section-heading .eyebrow-dot,.how-section .eyebrow-dot{background:var(--lb-pink)}.section-heading>p{font-size:11px}.filters{border:0;padding-top:0;margin:24px 0 18px}.filter-label{display:none}.filter-chip{border-radius:20px;background:#fff;padding:9px 15px;border-color:#ece8ef;font-size:10px}.filter-chip.selected,.filter-chip:hover{background:var(--lb-pink);border-color:var(--lb-pink)}.cards-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.date-card{border:1px solid #f0edf2;border-radius:9px;overflow:hidden;background:#fff;box-shadow:0 4px 16px #1b14210a}.date-card:hover{box-shadow:0 10px 24px #1b14211a}.card-image{height:178px}.card-tag{background:var(--lb-pink);color:white;border-radius:15px;padding:6px 10px;font-size:7px}.save-button{color:var(--lb-pink)}.card-content{padding:15px}.card-content h3{font-family:'DM Sans',sans-serif;font-size:15px;font-weight:700}.card-kicker{color:var(--lb-pink)}.card-content>p{font-size:10px}.price-label{color:#9899a2}.card-footer strong{color:#1c2334}.arrow-button{border-color:#f2c5dc;color:var(--lb-pink)}.more-row{color:#8f91a0}.button-outline{border-color:#eed4e1;border-radius:6px}.how-section{padding:70px max(calc((100% - 1060px)/2),8%);background:#101725;color:white}.how-copy h2{font-size:31px}.how-copy>p,.step p{color:#b1b5c1}.steps,.step{border-color:#303747}.step h3{font-family:'DM Sans',sans-serif}.step>span,.step>b{color:#ff4d9d}.footer{background:#101522;color:#b9bdc8;border:0;padding:0 max(calc((100% - 1180px)/2),5%)}
@media(max-width:900px){.hero{padding:75px 6% 75px}.search-panel{grid-template-columns:1fr 1fr}.search-panel label:nth-child(2){border-right:0}.search-button{min-height:44px;grid-column:span 2}.hero-benefits{flex-wrap:wrap;gap:10px 20px}.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.topbar{padding:0 16px}.main-nav{display:none}.hero{padding:65px 18px 45px;min-height:590px}.hero h1{font-size:36px}.hero-copy>p{font-size:12px}.search-panel{grid-template-columns:1fr;border-radius:10px;gap:0}.search-panel label{border:0;border-bottom:1px solid #eee;padding:10px}.search-panel label:nth-child(2){border-bottom:1px solid #eee}.search-button{grid-column:auto;min-height:44px;margin-top:8px}.hero-benefits{font-size:8px;display:grid;gap:11px;margin-top:17px}.ideas-section{padding:45px 16px}.section-heading h2{font-size:25px}.cards-grid{grid-template-columns:1fr}.card-image{height:210px}.how-section{padding:50px 22px}.how-copy h2{font-size:27px}.footer{padding:20px 18px}}

.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;
}
