:root{color-scheme:light;font-family:Plus Jakarta Sans,ui-sans-serif,system-ui,-apple-system,sans-serif;--font-display: "Playfair Display", Georgia, serif;--color-brand: #be185d;--color-brand-hover: #9d174d;--color-brand-strong: #831843;--color-brand-soft: #fce7f3;--color-brand-50: #fdf2f8;--color-brand-100: #fce7f3;--color-brand-200: #fbcfe8;--color-brand-500: #ec4899;--color-brand-700: #be185d;--color-brand-900: #500724;--color-accent: #b45309;--color-accent-hover: #92400e;--color-accent-soft: #fef3c7;--color-accent-mid: #d97706;--color-bg: #fff9fb;--color-surface: #ffffff;--color-surface-2: #fdf2f8;--color-surface-3: #fce7f3;--color-text: #1a0a12;--color-text-2: #3b1829;--color-muted: #6b4159;--color-muted-2: #9d7d8a;--color-line: rgba(190, 24, 93, .12);--color-line-strong: rgba(190, 24, 93, .22);--color-focus: #be185d;--color-success: #16a34a;--color-warning: #d97706;--color-error: #dc2626;--color-info: #2563eb;--color-success-soft: #f0fdf4;--color-warning-soft: #fffbeb;--color-error-soft: #fef2f2;--color-info-soft: #eff6ff;--gradient-brand: linear-gradient(135deg, #be185d 0%, #9d174d 60%, #7c3aed 100%);--gradient-hero: linear-gradient(135deg, #fff0f6 0%, #fce7f3 50%, #f3e8ff 100%);--gradient-gold: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);--gradient-cta: linear-gradient(135deg, #be185d, #ec4899);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--font-size-xs: .72rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.375rem;--font-size-2xl: 1.75rem;--font-size-3xl: 2.25rem;--radius-sm: 6px;--radius: 12px;--radius-lg: 18px;--radius-xl: 24px;--radius-pill: 9999px;--shadow-sm: 0 1px 4px rgba(190, 24, 93, .07);--shadow: 0 4px 18px rgba(190, 24, 93, .1), 0 2px 8px rgba(190, 24, 93, .06);--shadow-lg: 0 16px 48px rgba(190, 24, 93, .13), 0 6px 20px rgba(190, 24, 93, .08);--shadow-brand: 0 4px 16px rgba(190, 24, 93, .35);--shadow-gold: 0 4px 14px rgba(180, 83, 9, .28);--transition: .16s ease;--transition-slow: .28s ease}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--color-bg);color:var(--color-text);font-size:var(--font-size-base);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5{font-family:var(--font-display);letter-spacing:-.015em;margin-top:0;line-height:1.2}p{margin-top:0}img{max-width:100%}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px;border-radius:4px}.skip-link{background:var(--color-brand);border-radius:var(--radius-sm);color:#fff;font-weight:700;left:12px;padding:10px 16px;position:absolute;text-decoration:none;top:-64px;z-index:200;transition:top var(--transition)}.skip-link:focus-visible{top:12px}.app-layout{display:flex;flex-direction:column;min-height:100vh}.site-header{position:sticky;top:0;z-index:100;background:#fff9fbe0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--color-line);padding:0 var(--space-6)}.header-inner{display:flex;align-items:center;gap:var(--space-4);max-width:1200px;margin:0 auto;height:60px}.brand{display:flex;align-items:center;gap:var(--space-2);text-decoration:none;flex-shrink:0}.brand-icon{width:32px;height:32px;background:var(--gradient-brand);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1rem}.brand-name{font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:var(--color-brand-strong);letter-spacing:-.02em}.site-nav{display:flex;align-items:center;gap:var(--space-1);flex:1;overflow-x:auto;scrollbar-width:none}.site-nav::-webkit-scrollbar{display:none}.nav-link{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-muted);font-size:var(--font-size-sm);font-weight:600;white-space:nowrap;transition:color var(--transition),background var(--transition);text-decoration:none}.nav-link:hover{color:var(--color-brand);background:var(--color-brand-soft);text-decoration:none}.nav-link.active{color:var(--color-brand);background:var(--color-brand-soft)}.nav-icon{font-size:.9rem}.header-actions{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.lang-switch{background:transparent;border:1px solid var(--color-line);border-radius:var(--radius-sm);color:var(--color-muted);cursor:pointer;font:inherit;font-size:var(--font-size-sm);padding:var(--space-1) var(--space-3);transition:all var(--transition)}.lang-switch:hover{border-color:var(--color-brand);color:var(--color-brand)}.btn-login{background:var(--gradient-brand);border:none;border-radius:var(--radius-pill);box-shadow:var(--shadow-brand);color:#fff;cursor:pointer;font:inherit;font-size:var(--font-size-sm);font-weight:700;padding:var(--space-2) var(--space-5);text-decoration:none;transition:transform var(--transition),box-shadow var(--transition);white-space:nowrap}.btn-login:hover{transform:translateY(-1px);box-shadow:0 6px 20px #be185d6b;text-decoration:none}.user-avatar{align-items:center;cursor:pointer;display:flex;gap:var(--space-2)}.avatar-img{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid var(--color-brand-soft)}.avatar-initials{width:32px;height:32px;border-radius:50%;background:var(--gradient-brand);color:#fff;font-size:var(--font-size-xs);font-weight:800;display:flex;align-items:center;justify-content:center}.user-name{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-2)}.plan-badge{background:var(--gradient-gold);border:1px solid var(--color-accent-soft);border-radius:var(--radius-pill);color:var(--color-accent);font-size:.65rem;font-weight:800;padding:2px 8px;text-transform:uppercase;letter-spacing:.05em}.plan-badge.free{background:var(--color-surface-2);border-color:var(--color-line);color:var(--color-muted-2)}.site-main{flex:1;max-width:1200px;margin:0 auto;width:100%;padding:var(--space-8) var(--space-6)}.site-footer{border-top:1px solid var(--color-line);color:var(--color-muted-2);font-size:var(--font-size-sm);padding:var(--space-6);text-align:center}.site-footer a{color:var(--color-brand)}.footer-inner{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-4);max-width:1200px;margin:0 auto}.btn{align-items:center;border-radius:var(--radius-pill);cursor:pointer;display:inline-flex;font:inherit;font-weight:700;gap:var(--space-2);justify-content:center;padding:var(--space-3) var(--space-6);text-decoration:none;transition:transform var(--transition),box-shadow var(--transition),background var(--transition);white-space:nowrap}.btn:hover{transform:translateY(-1px);text-decoration:none}.btn:active{transform:translateY(0)}.btn-primary{background:var(--gradient-brand);border:none;box-shadow:var(--shadow-brand);color:#fff}.btn-primary:hover{box-shadow:0 6px 22px #be185d6b}.btn-secondary{background:var(--color-surface);border:2px solid var(--color-brand);color:var(--color-brand);box-shadow:var(--shadow-sm)}.btn-secondary:hover{background:var(--color-brand-soft)}.btn-ghost{background:transparent;border:1px solid var(--color-line);color:var(--color-muted)}.btn-ghost:hover{border-color:var(--color-brand);color:var(--color-brand);background:var(--color-brand-soft)}.btn-danger{background:var(--color-error-soft);border:1px solid var(--color-error);color:var(--color-error)}.btn-danger:hover{background:var(--color-error);color:#fff}.btn-sm{font-size:var(--font-size-sm);padding:var(--space-1) var(--space-4)}.btn-icon{padding:var(--space-2);width:36px;height:36px;border-radius:var(--radius)}.card{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6);transition:box-shadow var(--transition),transform var(--transition)}.card:hover{box-shadow:var(--shadow)}.card-header{align-items:center;display:flex;gap:var(--space-3);justify-content:space-between;margin-bottom:var(--space-4)}.card-title{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:600;margin:0;color:var(--color-text)}.page-header{align-items:flex-start;display:flex;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-8);flex-wrap:wrap}.page-title{font-family:var(--font-display);font-size:var(--font-size-3xl);margin:0 0 var(--space-2);color:var(--color-text)}.page-subtitle{color:var(--color-muted);margin:0}.stats-grid{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:var(--space-8)}.stat-card{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.stat-icon{font-size:1.5rem;margin-bottom:var(--space-2)}.stat-label{color:var(--color-muted);font-size:var(--font-size-sm);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-1)}.stat-value{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:700;margin:0;color:var(--color-brand)}.stat-sub{color:var(--color-muted-2);font-size:var(--font-size-sm);margin:var(--space-1) 0 0}.progress-bar{background:var(--color-brand-soft);border-radius:var(--radius-pill);height:8px;overflow:hidden}.progress-fill{background:var(--gradient-brand);border-radius:var(--radius-pill);height:100%;transition:width .6s ease}.form-group{display:grid;gap:var(--space-1);margin-bottom:var(--space-4)}.form-label{color:var(--color-text-2);font-size:var(--font-size-sm);font-weight:600}input,textarea,select{background:var(--color-surface);border:1.5px solid var(--color-line);border-radius:var(--radius);color:var(--color-text);font:inherit;font-size:var(--font-size-base);padding:var(--space-3) var(--space-4);transition:border-color var(--transition),box-shadow var(--transition);width:100%}input:focus,textarea:focus,select:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px #be185d1f;outline:none}input::placeholder,textarea::placeholder{color:var(--color-muted-2)}.form-row{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.badge{align-items:center;border-radius:var(--radius-pill);display:inline-flex;font-size:var(--font-size-xs);font-weight:700;gap:4px;padding:3px 10px;text-transform:uppercase;letter-spacing:.04em}.badge-rose{background:var(--color-brand-soft);color:var(--color-brand)}.badge-gold{background:var(--color-accent-soft);color:var(--color-accent)}.badge-green{background:var(--color-success-soft);color:var(--color-success)}.badge-orange{background:var(--color-warning-soft);color:var(--color-warning)}.badge-red{background:var(--color-error-soft);color:var(--color-error)}.badge-gray{background:var(--color-surface-2);color:var(--color-muted)}.table-wrap{overflow-x:auto;border:1px solid var(--color-line);border-radius:var(--radius-lg)}table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}thead th{background:var(--color-surface-2);border-bottom:1px solid var(--color-line);color:var(--color-muted);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.06em;padding:var(--space-3) var(--space-4);text-align:left;text-transform:uppercase}tbody td{border-bottom:1px solid var(--color-line);padding:var(--space-3) var(--space-4)}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--color-brand-50)}.modal-backdrop{align-items:center;background:#1a0a1280;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:var(--space-4);position:fixed;z-index:200}.modal{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-height:90vh;overflow-y:auto;padding:var(--space-8);width:min(540px,100%)}.modal-title{font-family:var(--font-display);font-size:var(--font-size-xl);margin:0 0 var(--space-6);color:var(--color-text)}.modal-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-6);flex-wrap:wrap}.ad-slot{background:var(--color-surface-2);border:1px dashed var(--color-line);border-radius:var(--radius-lg);min-height:90px;padding:var(--space-4);margin:var(--space-8) 0;display:flex;align-items:center;justify-content:center}.dashboard-hero{background:var(--gradient-hero);border:1px solid var(--color-brand-100);border-radius:var(--radius-xl);padding:var(--space-10) var(--space-8);margin-bottom:var(--space-8);position:relative;overflow:hidden}.dashboard-hero:before{content:"💍";position:absolute;right:var(--space-8);top:50%;transform:translateY(-50%);font-size:5rem;opacity:.15}.countdown-value{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,5rem);font-weight:700;color:var(--color-brand);line-height:1}.countdown-label{color:var(--color-muted);font-size:var(--font-size-lg);margin-top:var(--space-2)}.dashboard-grid{display:grid;gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.budget-summary{display:grid;gap:var(--space-6);grid-template-columns:1fr 1fr;margin-bottom:var(--space-6)}.budget-big{font-family:var(--font-display);font-size:var(--font-size-3xl);font-weight:700;color:var(--color-brand)}.budget-category-header{align-items:center;background:var(--color-surface-2);border-left:3px solid var(--color-brand);border-radius:0 var(--radius-sm) var(--radius-sm) 0;display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3)}.checklist-category{margin-bottom:var(--space-6)}.checklist-category-title{color:var(--color-brand);font-size:var(--font-size-sm);font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin:0 0 var(--space-3)}.checklist-item{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius);display:flex;gap:var(--space-3);margin-bottom:var(--space-2);padding:var(--space-3) var(--space-4);transition:all var(--transition)}.checklist-item:hover{border-color:var(--color-brand-200);box-shadow:var(--shadow-sm)}.checklist-item.done{background:var(--color-success-soft);border-color:var(--color-success)}.checklist-item.done .item-label{text-decoration:line-through;color:var(--color-muted-2)}.item-checkbox{accent-color:var(--color-brand);width:18px;height:18px;cursor:pointer;flex-shrink:0}.item-label{flex:1}.item-priority{font-size:var(--font-size-xs)}.timeline-list{position:relative;padding-left:28px}.timeline-list:before{background:var(--gradient-brand);bottom:0;content:"";left:11px;position:absolute;top:0;width:2px}.timeline-entry{margin-bottom:var(--space-6);position:relative}.timeline-dot{background:var(--color-brand);border:3px solid var(--color-bg);border-radius:50%;height:16px;left:-28px;position:absolute;top:18px;width:16px;box-shadow:var(--shadow-brand)}.timeline-dot.done{background:var(--color-success)}.timeline-card{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-sm)}.timeline-date{color:var(--color-muted);font-size:var(--font-size-sm);margin:0 0 var(--space-1)}.timeline-title{font-family:var(--font-display);font-weight:600;font-size:var(--font-size-lg);margin:0}.rsvp-summary{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-6)}.rsvp-chip{align-items:center;border-radius:var(--radius-pill);display:flex;font-size:var(--font-size-sm);font-weight:700;gap:var(--space-2);padding:var(--space-2) var(--space-4)}.vendor-card{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);transition:all var(--transition)}.vendor-card:hover{box-shadow:var(--shadow);border-color:var(--color-brand-200)}.vendor-name{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:600;margin:0 0 var(--space-2)}.vendor-meta{color:var(--color-muted);font-size:var(--font-size-sm);display:flex;gap:var(--space-3);flex-wrap:wrap}.vendor-grid{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.ai-chat{display:flex;flex-direction:column;gap:var(--space-4);max-height:500px;overflow-y:auto;padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-bg)}.chat-message{display:flex;gap:var(--space-3);align-items:flex-start}.chat-message.user{flex-direction:row-reverse}.chat-bubble{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);max-width:80%;padding:var(--space-3) var(--space-4);line-height:1.6}.chat-message.user .chat-bubble{background:var(--gradient-brand);border-color:transparent;color:#fff;border-radius:var(--radius-lg) var(--radius-lg) var(--radius-sm) var(--radius-lg)}.chat-message.assistant .chat-bubble{border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) var(--radius-sm)}.chat-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;background:var(--color-brand-soft)}.chat-input-row{display:flex;gap:var(--space-3);margin-top:var(--space-4)}.chat-input-row input{flex:1}.suggestions{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-4)}.suggestion-chip{background:var(--color-surface);border:1px solid var(--color-brand-200);border-radius:var(--radius-pill);color:var(--color-brand);cursor:pointer;font:inherit;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-4);transition:all var(--transition)}.suggestion-chip:hover{background:var(--color-brand-soft);border-color:var(--color-brand)}.pricing-hero{text-align:center;margin-bottom:var(--space-12)}.pricing-grid{display:grid;gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));max-width:800px;margin:0 auto}.pricing-card{background:var(--color-surface);border:2px solid var(--color-line);border-radius:var(--radius-xl);padding:var(--space-8);position:relative;transition:all var(--transition)}.pricing-card.featured{border-color:var(--color-brand);box-shadow:var(--shadow-brand)}.pricing-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.pricing-label{font-size:var(--font-size-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);margin-bottom:var(--space-2)}.featured .pricing-label{color:var(--color-brand)}.pricing-name{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:700;margin:0 0 var(--space-2)}.pricing-price{align-items:baseline;display:flex;gap:var(--space-1);margin-bottom:var(--space-6)}.price-amount{font-family:var(--font-display);font-size:3rem;font-weight:700;color:var(--color-brand)}.price-period{color:var(--color-muted);font-size:var(--font-size-sm)}.pricing-features{list-style:none;margin:0 0 var(--space-8);padding:0;display:grid;gap:var(--space-3)}.pricing-features li{align-items:center;display:flex;gap:var(--space-2);font-size:var(--font-size-sm)}.pricing-features li:before{content:"✓";color:var(--color-success);font-weight:800;flex-shrink:0}.login-cta{background:var(--gradient-hero);border:1px solid var(--color-brand-200);border-radius:var(--radius-xl);padding:var(--space-12) var(--space-8);text-align:center;margin:var(--space-8) 0}.login-cta h2{font-family:var(--font-display);font-size:var(--font-size-2xl);margin-bottom:var(--space-3)}.login-cta p{color:var(--color-muted);margin-bottom:var(--space-6)}.setup-wizard{background:var(--gradient-hero);border:1px solid var(--color-brand-200);border-radius:var(--radius-xl);padding:var(--space-10) var(--space-8);max-width:560px;margin:var(--space-8) auto;text-align:center}.setup-wizard h2{font-family:var(--font-display);font-size:var(--font-size-2xl);margin-bottom:var(--space-3)}.legal-page{max-width:820px;margin:0 auto}.legal-page h1{font-family:var(--font-display);font-size:var(--font-size-2xl)}.legal-page h2{font-family:var(--font-display);font-size:var(--font-size-xl);margin-top:var(--space-8)}.toast-container{bottom:var(--space-6);display:grid;gap:var(--space-2);pointer-events:none;position:fixed;right:var(--space-6);z-index:300}.toast{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--color-text);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:#fff;display:flex;font-size:var(--font-size-sm);font-weight:600;gap:var(--space-3);max-width:320px;min-width:220px;padding:var(--space-3) var(--space-5);pointer-events:auto;animation:toast-in .24s ease}.toast.success{background:var(--color-success)}.toast.error{background:var(--color-error)}.toast.info{background:var(--color-brand)}@keyframes toast-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.spinner{width:20px;height:20px;border:2px solid var(--color-line);border-top-color:var(--color-brand);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{border:1px dashed var(--color-line);border-radius:var(--radius-lg);padding:var(--space-12) var(--space-8);text-align:center;color:var(--color-muted)}.empty-state-icon{font-size:2.5rem;margin-bottom:var(--space-4)}.empty-state h3{font-family:var(--font-display);font-size:var(--font-size-xl);margin-bottom:var(--space-2);color:var(--color-text)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ui-tabs__bar{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-line);margin-bottom:var(--space-6);overflow-x:auto;scrollbar-width:none}.ui-tabs__bar::-webkit-scrollbar{display:none}.ui-tabs__tab{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--color-muted);cursor:pointer;font:inherit;font-weight:600;font-size:var(--font-size-sm);padding:var(--space-3) var(--space-4);transition:all var(--transition);white-space:nowrap}.ui-tabs__tab:hover{color:var(--color-brand)}.ui-tabs__tab.active{color:var(--color-brand);border-bottom-color:var(--color-brand)}@media (max-width: 768px){.site-main{padding:var(--space-4)}.page-title{font-size:var(--font-size-2xl)}.budget-summary,.pricing-grid{grid-template-columns:1fr}.dashboard-hero{padding:var(--space-6)}.dashboard-hero:before{display:none}.modal{padding:var(--space-6)}}@media (max-width: 480px){.header-inner{gap:var(--space-2)}.user-name{display:none}.site-nav .nav-link span:not(.nav-icon){display:none}}
