:root{--wd-accent:#c07070;--wd-accent-dark:#a05858;--wd-accent-light:#fdf0eb;--wd-accent-on:#fff;--wd-canvas:#fff;--wd-canvas-warm:#fdf6f0;--wd-canvas-deep:#2c2c2c;--wd-ink:#2c2c2c;--wd-ink-muted:#888;--wd-ink-faint:#bbb;--wd-ink-on-dark:#fff;--wd-hairline:#e8ddd5;--wd-divider:#0000000f;--wd-radius-pill:9999px;--wd-radius-lg:18px;--wd-radius-md:12px;--wd-radius-sm:8px;--wd-space-xxs:4px;--wd-space-xs:8px;--wd-space-sm:12px;--wd-space-md:16px;--wd-space-lg:24px;--wd-space-xl:32px;--wd-space-xxl:48px;--wd-space-section:80px;--wd-font:"Pretendard Variable", "Pretendard", system-ui, sans-serif;--wd-size-hero:40px;--wd-size-display:28px;--wd-size-title:20px;--wd-size-body:15px;--wd-size-caption:13px;--wd-size-micro:11px;--wd-shadow-photo:0 4px 24px #0000002e}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--cream:oklch(97% .009 65);--cream-deep:oklch(94% .012 65);--cream-dark:oklch(90% .015 60);--rose:oklch(67% .11 18);--rose-light:oklch(93% .028 18);--rose-mid:oklch(80% .065 18);--rose-dark:oklch(52% .13 18);--ink:oklch(22% .008 55);--ink-mid:oklch(45% .008 55);--ink-soft:oklch(65% .007 55);--ink-ghost:oklch(82% .005 60);--line:oklch(88% .009 65);--line-soft:oklch(92% .007 65);--gold:oklch(75% .09 75);--sage:oklch(62% .08 145);--blush:oklch(58% .12 18);--groom:oklch(55% .12 240);--groom-light:oklch(93% .03 240);--groom-mid:oklch(75% .08 240);--bride:oklch(65% .13 5);--bride-light:oklch(94% .03 5);--bride-mid:oklch(80% .08 5);--surface:oklch(99% .004 60);--surface-alt:oklch(96% .008 62);--font-display:"Pretendard Variable", "Pretendard", -apple-system, sans-serif;--font-body:"Pretendard Variable", "Pretendard", -apple-system, sans-serif;--font-script:"Gowun Batang", "Nanum Myeongjo", "Pretendard Variable", serif;--font-serif:"Cormorant Garamond", "Gowun Batang", serif;--gap-xs:4px;--gap-sm:8px;--gap-md:16px;--gap-lg:24px;--gap-xl:40px;--sidebar-w:240px;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--shadow-xs:0 1px 2px oklch(0% 0% 0% / .04);--shadow-sm:0 2px 8px oklch(0% 0% 0% / .06), 0 1px 2px oklch(0% 0% 0% / .04);--shadow-md:0 8px 24px oklch(0% 0% 0% / .08), 0 2px 6px oklch(0% 0% 0% / .04);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.45, 0, .55, 1);font-family:var(--font-body);color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.55}body{margin:0}#root{text-align:left;border:none;width:100%;min-height:100dvh}.app{background:var(--cream);min-height:100dvh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--line);z-index:100;height:100dvh;transition:transform .28s var(--ease-out);flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow:hidden auto}.sidebar-brand{border-bottom:1px solid var(--line-soft);padding:28px 24px 20px}.sidebar-brand-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--rose-dark);font-size:24px;font-weight:800;line-height:1.2}.sidebar-brand-heart{color:var(--rose);margin:0 4px;font-style:normal;display:inline-block}.sidebar-couple{border-bottom:1px solid var(--line-soft);background:var(--rose-light);padding:16px 24px}.sidebar-couple-names{font-family:var(--font-display);color:var(--rose-dark);letter-spacing:.01em;font-size:17px;font-weight:500}.sidebar-couple-date{color:var(--rose);letter-spacing:.03em;margin-top:2px;font-size:12px}.sidebar-nav{flex-direction:column;flex:1;gap:1px;padding:10px 12px;display:flex}.nav-item{cursor:pointer;color:var(--ink-soft);font-family:var(--font-body);text-align:left;border-radius:var(--radius-sm);letter-spacing:.01em;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:9px 12px;font-size:13px;font-weight:400;transition:background .15s,color .15s;display:flex}.nav-item:hover{background:var(--cream-deep);color:var(--ink-mid)}.nav-item.active{background:var(--rose-light);color:var(--rose-dark);font-weight:500}.nav-item.active svg{color:var(--rose)}.nav-section-label{text-transform:uppercase;letter-spacing:.12em;color:var(--ink-ghost);padding:12px 12px 4px;font-size:10px;font-weight:600}.overlay{background:oklch(0% 0% 0% / .25);z-index:99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:none;position:fixed;inset:0}.main{margin-left:var(--sidebar-w);flex-direction:column;flex:1;min-height:100dvh;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--line-soft);z-index:50;align-items:center;gap:12px;height:52px;padding:0 28px;display:flex;position:sticky;top:0}.menu-btn{cursor:pointer;color:var(--ink-mid);border-radius:var(--radius-sm);background:0 0;border:none;padding:6px;transition:background .15s;display:none}.menu-btn:hover{background:var(--cream-deep)}.topbar-title{color:var(--ink);letter-spacing:.01em;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:500;display:flex}.topbar-title svg{color:var(--rose)}.content{flex:1;width:100%;max-width:1160px;padding:clamp(20px,3vw,36px) clamp(20px,4vw,40px)}.bottom-nav{background:var(--surface);border-top:1px solid var(--line);padding:6px 0 calc(6px + env(safe-area-inset-bottom));z-index:100;box-shadow:0 -4px 20px oklch(0% 0% 0% / .06);display:none;position:fixed;bottom:0;left:0;right:0}.bottom-nav-inner{justify-content:space-around;align-items:center;display:flex}.bottom-nav-item{cursor:pointer;color:var(--ink-soft);font-size:10px;font-family:var(--font-body);border-radius:var(--radius-sm);background:0 0;border:none;flex-direction:column;align-items:center;gap:3px;min-width:52px;padding:6px 12px;transition:color .15s;display:flex}.bottom-nav-item.active{color:var(--rose)}.bottom-nav-item.active .bottom-nav-dot{display:block}.bottom-nav-dot{background:var(--rose);border-radius:50%;width:4px;height:4px;display:none;position:absolute;bottom:2px}.page-content{flex-direction:column;gap:clamp(16px,2.5vw,28px);display:flex}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:4px;display:flex}.page-header-text h2{font-family:var(--font-display);color:var(--ink);letter-spacing:.01em;margin:0;font-size:clamp(22px,3vw,30px);font-weight:500;line-height:1.15}.page-subtitle{color:var(--ink-soft);margin-top:5px;font-size:13px;font-weight:300}.surface{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}.surface-alt{background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--radius-md)}.btn{border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-body);letter-spacing:.01em;transition:all .16s var(--ease-out);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:6px;padding:8px 18px;font-size:13px;font-weight:500;display:inline-flex}.btn-primary{composes:btn;background:var(--rose);color:oklch(99% .003 18)}.btn-primary:hover{background:var(--rose-dark);transform:translateY(-1px);box-shadow:0 4px 12px oklch(67% .11 18/.28)}.btn-primary:active{box-shadow:none;transform:translateY(0)}.btn-primary.saved{background:var(--sage)}.btn-secondary{composes:btn;background:var(--cream-deep);color:var(--ink-mid);border:1px solid var(--line)}.btn-secondary:hover{background:var(--cream-dark);color:var(--ink)}.btn-ghost{composes:btn;color:var(--ink-soft);border:1px solid var(--line);background:0 0;padding:7px 14px}.btn-ghost:hover{border-color:var(--rose-mid);color:var(--rose);background:var(--rose-light)}.btn-ghost.active{background:var(--rose-light);color:var(--rose-dark);border-color:var(--rose-mid)}.btn-danger{composes:btn;color:var(--blush);background:oklch(96% .02 18);border:1px solid oklch(88% .04 18)}.btn-danger:hover{background:var(--blush);color:#fff}.btn-sm{padding:6px 12px;font-size:12px}.btn-xs{padding:4px 10px;font-size:11px}.icon-btn{cursor:pointer;color:var(--ink-ghost);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:5px;transition:color .15s,background .15s;display:inline-flex}.icon-btn:hover{color:var(--blush);background:oklch(96% .02 18)}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-group{flex-direction:column;gap:5px;display:flex}.form-group.full{grid-column:1/-1}.form-group label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-size:11px;font-weight:600}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--line);border-radius:var(--radius-sm);font-family:var(--font-body);color:var(--ink);background:var(--surface);outline:none;padding:9px 12px;font-size:13px;transition:border-color .15s,box-shadow .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--rose-mid);box-shadow:0 0 0 3px oklch(67% .11 18/.12)}.form-group input::placeholder{color:var(--ink-ghost)}.form-actions{border-top:1px solid var(--line-soft);gap:8px;margin-top:18px;padding-top:16px;display:flex}.add-form{background:var(--surface-alt);border:1px dashed var(--line);border-radius:var(--radius-md);padding:20px}.add-form h4{font-family:var(--font-display);color:var(--ink);margin-bottom:14px;font-size:16px;font-weight:500}.progress-track{background:var(--cream-dark);border-radius:999px;overflow:hidden}.progress-track.h4{height:4px}.progress-track.h6{height:6px}.progress-track.h8{height:8px}.progress-track.h12{height:12px}.progress-fill{background:var(--rose);height:100%;transition:width .4s var(--ease-out);border-radius:999px}.progress-fill.green{background:var(--sage)}.progress-fill.gold{background:var(--gold)}.progress-fill.danger{background:var(--blush)}.tabs{border-bottom:1px solid var(--line);gap:0;display:flex}.tab{cursor:pointer;font-family:var(--font-body);color:var(--ink-soft);letter-spacing:.01em;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 18px;font-size:13px;font-weight:400;transition:color .15s}.tab:hover{color:var(--ink-mid)}.tab.active{color:var(--rose-dark);border-bottom-color:var(--rose);font-weight:500}.tab-content{padding-top:20px}.tab-groom.active{color:var(--groom);border-bottom-color:var(--groom)}.tab-bride.active{color:var(--bride);border-bottom-color:var(--bride)}.filters{flex-direction:column;gap:8px;display:flex}.filter-row{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.filter-label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-ghost);margin-right:4px;font-size:11px;font-weight:600}.chip{border:1px solid var(--line);font-family:var(--font-body);color:var(--ink-soft);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;transition:all .14s;display:inline-flex}.chip:hover{border-color:var(--rose-mid);color:var(--rose)}.chip.active{background:var(--rose-light);border-color:var(--rose-mid);color:var(--rose-dark);font-weight:500}.section-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.section-title{font-family:var(--font-display);color:var(--ink);letter-spacing:.01em;font-size:18px;font-weight:500}.section-desc{color:var(--ink-soft);font-size:13px;font-weight:300}.dday-hero{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;gap:24px;padding:clamp(28px,4vw,48px) clamp(24px,4vw,56px);display:flex;position:relative;overflow:hidden}.dday-hero:before{content:"";pointer-events:none;background:radial-gradient(circle,oklch(93% .028 18/.3) 0%,#0000 65%);width:200px;height:200px;position:absolute;top:-80px;right:-80px}.dday-couple-names{font-family:var(--font-display);color:var(--ink);letter-spacing:.02em;margin-bottom:4px;font-size:clamp(20px,2.5vw,28px);font-weight:400}.dday-couple-names em{color:var(--rose);font-style:normal}.dday-date-line{color:var(--ink-soft);letter-spacing:.02em;font-size:13px;font-weight:300}.dday-venue{color:var(--ink-ghost);letter-spacing:.01em;margin-top:4px;font-size:12px}.dday-right{text-align:right;flex-shrink:0}.dday-label{text-transform:uppercase;letter-spacing:.14em;color:var(--rose-mid);margin-bottom:4px;font-size:12px;font-weight:600}.dday-number{font-family:var(--font-display);color:var(--rose);letter-spacing:-.02em;font-size:clamp(52px,7vw,88px);font-weight:300;line-height:.9}.dday-passed{font-family:var(--font-display);color:var(--sage);font-size:22px;font-style:italic;font-weight:400}.quick-stats{grid-template-columns:repeat(3,1fr);gap:clamp(10px,2vw,16px);display:grid}.quick-stat{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:16px 18px}.quick-stat-label{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-ghost);margin-bottom:6px;font-size:11px;font-weight:600}.quick-stat-value{font-family:var(--font-display);color:var(--ink);font-size:24px;font-weight:500;line-height:1.1}.quick-stat-sub{color:var(--ink-soft);margin-top:6px;font-size:12px}.quick-stat-progress{margin-top:8px}.dashboard-cols{grid-template-columns:1fr 1.4fr;gap:clamp(14px,2vw,20px);display:grid}.dashboard-col{gap:inherit;flex-direction:column;display:flex}.widget{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:18px 20px}.widget-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.widget-title{font-family:var(--font-display);color:var(--ink);letter-spacing:.01em;font-size:16px;font-weight:500}.widget-badge{background:var(--rose-light);color:var(--rose-dark);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.urgent-item{border-bottom:1px solid var(--line-soft);align-items:center;gap:10px;padding:9px 0;display:flex}.urgent-item:last-child{border-bottom:none}.urgent-cat-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.urgent-text{color:var(--ink-mid);flex:1;font-size:13px}.urgent-timeline{color:var(--ink-ghost);white-space:nowrap;font-size:11px}.cat-progress-item{border-bottom:1px solid var(--line-soft);padding:8px 0}.cat-progress-item:last-child{border-bottom:none}.cat-progress-row{justify-content:space-between;align-items:center;margin-bottom:5px;display:flex}.cat-progress-label{color:var(--ink-mid);align-items:center;gap:6px;font-size:13px;display:flex}.cat-progress-count{color:var(--ink-ghost);font-size:11px}.overall-progress-bar{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);align-items:center;gap:16px;padding:16px 20px;display:flex}.overall-progress-text{color:var(--ink-soft);white-space:nowrap;min-width:140px;font-size:13px}.overall-progress-pct{font-family:var(--font-display);color:var(--rose);white-space:nowrap;margin-left:auto;font-size:20px;font-weight:500}.timeline-list{flex-direction:column;gap:0;display:flex}.timeline-group{position:relative}.timeline-group+.timeline-group{margin-top:28px}.timeline-marker{align-items:center;gap:10px;margin-bottom:10px;padding-left:4px;display:flex}.timeline-dot{background:var(--rose);border:2px solid var(--surface);width:10px;height:10px;box-shadow:0 0 0 2px var(--rose-mid);border-radius:50%;flex-shrink:0}.timeline-label{text-transform:uppercase;letter-spacing:.1em;color:var(--rose);font-size:12px;font-weight:600}.timeline-count-badge{color:var(--ink-ghost);background:var(--cream-deep);border-radius:999px;margin-left:auto;padding:1px 7px;font-size:11px}.task-list{flex-direction:column;gap:1px;margin-left:20px;display:flex}.task-item{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm);align-items:flex-start;gap:10px;min-height:44px;padding:11px 14px;transition:border-color .14s,box-shadow .14s;display:flex}.task-item+.task-item{margin-top:2px}.task-item.done{background:var(--surface-alt);opacity:.65}.task-item:hover:not(.done){border-color:var(--rose-mid);box-shadow:var(--shadow-xs)}.check-ring{border:1.5px solid var(--ink-ghost);cursor:pointer;width:20px;height:20px;transition:all .15s var(--ease-out);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;display:flex}.check-ring:hover{border-color:var(--rose)}.check-ring.checked{background:var(--sage);border-color:var(--sage)}.task-body{flex:1;min-width:0}.task-main-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.task-text{color:var(--ink);font-size:13px}.task-text.done-text{color:var(--ink-ghost);text-decoration:line-through}.task-cat-tag{color:var(--ink-mid);letter-spacing:.01em;border-radius:999px;padding:2px 7px;font-size:11px}.priority-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.priority-dot.high{background:var(--blush)}.priority-dot.medium{background:var(--gold)}.priority-dot.low{background:var(--sage)}.task-note-field{width:100%;font-family:var(--font-body);color:var(--ink-soft);background:0 0;border:none;border-bottom:1px solid #0000;outline:none;margin-top:5px;padding:3px 0;font-size:12px;transition:border-color .14s}.task-note-field:focus{border-bottom-color:var(--line)}.task-note-field::placeholder{color:var(--ink-ghost);font-style:italic}.task-delete{cursor:pointer;color:var(--ink-ghost);opacity:0;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:4px;transition:opacity .14s,color .14s}.task-item:hover .task-delete{opacity:1}.task-delete:hover{color:var(--blush)}.budget-hero{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);align-items:flex-start;gap:32px;padding:22px 24px;display:flex}.budget-hero-label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-ghost);margin-bottom:4px;font-size:11px;font-weight:600}.budget-hero-amount{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;font-size:30px;font-weight:500}.budget-hero-divider{background:var(--line-soft);flex-shrink:0;align-self:stretch;width:1px}.budget-hero-bar{flex:1;align-self:center}.budget-hero-bar-labels{color:var(--ink-soft);justify-content:space-between;margin-bottom:6px;font-size:12px;display:flex}.budget-cat-section{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);overflow:hidden}.budget-cat-header{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.budget-cat-name{align-items:center;gap:8px;display:flex}.budget-cat-accent{border-radius:2px;width:4px;height:20px}.budget-cat-title-text{font-family:var(--font-display);color:var(--ink);font-size:16px;font-weight:500}.budget-over-chip{color:var(--blush);background:oklch(96% .02 18);border:1px solid oklch(88% .04 18);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:500}.budget-cat-amounts{color:var(--ink-soft);gap:20px;font-size:12px;display:flex}.budget-table-wrap{overflow-x:auto}.budget-table{border-collapse:collapse;width:100%;font-size:13px}.budget-table th{text-align:left;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-ghost);background:var(--surface-alt);border-bottom:1px solid var(--line-soft);padding:8px 14px;font-size:10px;font-weight:700}.budget-table td{border-bottom:1px solid var(--line-soft);color:var(--ink);padding:8px 6px}.budget-table tr:last-child td{border-bottom:none}.table-input{width:100%;font-family:var(--font-body);color:var(--ink);background:0 0;border:1px solid #0000;border-radius:4px;outline:none;padding:5px 8px;font-size:13px;transition:border-color .14s}.table-input:focus{border-color:var(--rose-mid);background:var(--surface);box-shadow:0 0 0 2px oklch(67% .11 18/.1)}.table-input.num{text-align:right}.diff-positive{color:var(--sage);font-size:12px;font-weight:500}.diff-negative{color:var(--blush);font-size:12px;font-weight:500}.day-checklist-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;display:grid}.day-check-item{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm);cursor:pointer;align-items:flex-start;gap:10px;min-height:52px;padding:12px 14px;transition:border-color .14s,background .14s;display:flex}.day-check-item:hover{border-color:var(--rose-mid)}.day-check-item.is-checked{background:var(--rose-light);border-color:var(--rose-mid)}.day-check-circle{border:1.5px solid var(--line);width:22px;height:22px;transition:all .15s var(--ease-out);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.day-check-circle.done{background:var(--rose);border-color:var(--rose)}.day-check-body{flex:1;min-width:0}.day-check-name{color:var(--ink);font-size:13px;font-weight:500}.day-check-name.done-text{color:var(--ink-ghost);text-decoration:line-through}.day-check-qty{color:var(--ink-soft);margin-top:2px;font-size:11px}.day-check-note{color:var(--ink-soft);margin-top:1px;font-size:11px;font-style:italic}.role-list{flex-direction:column;gap:6px;display:flex}.role-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm);align-items:center;gap:14px;padding:12px 16px;display:flex}.role-pill{background:var(--rose-light);color:var(--rose-dark);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:12px;font-weight:500}.role-detail{flex:1}.role-name{color:var(--ink);font-size:13px;font-weight:500}.role-phone{color:oklch(55% .13 230);align-items:center;gap:4px;margin-top:2px;font-size:12px;text-decoration:none;display:inline-flex}.role-note{color:var(--ink-soft);margin-top:1px;font-size:11px}.vendor-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;display:grid}.vendor-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:14px 16px}.vendor-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.vendor-card-cat{color:var(--ink);font-size:14px;font-weight:500}.vendor-time-chip{color:var(--ink-soft);align-items:center;gap:4px;font-size:11px;display:flex}.vendor-body{color:var(--ink-mid);flex-direction:column;gap:3px;font-size:13px;display:flex}.vendor-note{color:var(--ink-soft);margin-top:3px;font-size:11px;font-style:italic}.guest-slider-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);align-items:center;gap:20px;padding:18px 22px;display:flex}.guest-slider-label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);white-space:nowrap;font-size:12px;font-weight:600}.guest-slider-row{flex:1;align-items:center;gap:14px;display:flex}input[type=range]{accent-color:var(--rose);cursor:pointer;flex:1;height:4px}.guest-count-box{background:var(--rose-light);border-radius:var(--radius-sm);align-items:center;gap:5px;padding:5px 12px;display:flex}.guest-count-box input{width:60px;font-family:var(--font-display);color:var(--rose-dark);text-align:center;background:0 0;border:none;outline:none;font-size:20px;font-weight:500}.guest-count-unit{color:var(--rose);font-size:13px}.guest-note{color:var(--ink-ghost);margin-top:6px;font-size:12px}.venue-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;display:grid}.venue-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);transition:transform .2s var(--ease-out), box-shadow .2s var(--ease-out);flex-direction:column;gap:0;padding:18px 20px;display:flex;position:relative}.venue-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.venue-card.selected{border-color:var(--rose);box-shadow:0 0 0 2px oklch(67% .11 18/.18), var(--shadow-sm)}.venue-badge{text-transform:uppercase;letter-spacing:.1em;border-radius:0 0 var(--radius-sm) var(--radius-sm);padding:3px 9px;font-size:10px;font-weight:700;position:absolute;top:-1px;left:16px}.venue-badge.cheapest{background:var(--gold);color:oklch(20% .05 75)}.venue-badge.contracted{background:var(--rose);color:#fff}.venue-card-top{justify-content:space-between;align-items:flex-start;margin-top:8px;margin-bottom:14px;display:flex}.venue-name{font-family:var(--font-display);color:var(--ink);font-size:17px;font-weight:500}.venue-location-tag{color:var(--ink-soft);margin-top:2px;font-size:12px}.star-row{gap:2px;display:flex}.star-btn{cursor:pointer;background:0 0;border:none;padding:2px;transition:transform .1s}.star-btn:hover{transform:scale(1.2)}.venue-specs{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);margin-bottom:12px;padding:12px 0}.venue-spec-row{justify-content:space-between;padding:3px 0;font-size:13px;display:flex}.spec-label{color:var(--ink-soft)}.spec-value{color:var(--ink);font-weight:400}.venue-total-row{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.venue-total-label{color:var(--ink-soft);font-size:12px}.venue-total-amount{font-family:var(--font-display);color:var(--rose-dark);font-size:22px;font-weight:500}.venue-memo{border:1px solid var(--line-soft);border-radius:var(--radius-sm);width:100%;min-height:56px;font-family:var(--font-body);color:var(--ink-mid);background:var(--surface-alt);resize:vertical;outline:none;margin-bottom:12px;padding:8px 10px;font-size:12px;transition:border-color .14s}.venue-memo:focus{border-color:var(--rose-mid);background:var(--surface)}.venue-footer{justify-content:space-between;align-items:center;margin-top:auto;padding-top:4px;display:flex}.honeymoon-info{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:20px 22px}.honeymoon-summary-bar{border-top:1px solid var(--line-soft);flex-wrap:wrap;gap:14px;margin-top:14px;padding-top:14px;display:flex}.honeymoon-summary-item{color:var(--ink-mid);align-items:center;gap:6px;font-size:13px;display:flex}.transport-list{flex-direction:column;gap:6px;display:flex}.transport-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm);align-items:flex-start;gap:14px;padding:12px 16px;display:flex}.transport-step{background:var(--rose-light);width:26px;height:26px;color:var(--rose);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.transport-icon-wrap{color:oklch(55% .13 230);flex-shrink:0;margin-top:1px}.transport-body{flex:1}.transport-route-row{color:var(--ink);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;font-weight:400;display:flex}.transport-type-tag{color:oklch(45% .13 230);background:oklch(55% .13 230/.1);border-radius:4px;padding:2px 7px;font-size:11px;font-weight:500}.transport-arrow{color:var(--ink-ghost)}.transport-detail{color:var(--ink-soft);margin-top:3px;font-size:12px}.transport-note{color:var(--gold);margin-top:3px;font-size:12px}.hotel-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;display:grid}.hotel-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:14px 16px}.hotel-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.hotel-name{font-family:var(--font-display);color:var(--ink);font-size:15px;font-weight:500}.hotel-location{color:var(--ink-soft);align-items:center;gap:3px;margin-top:2px;font-size:12px;display:flex}.hotel-dates{color:var(--ink-soft);flex-wrap:wrap;gap:12px;margin-bottom:8px;font-size:12px;display:flex}.cancel-alert{color:oklch(42% .1 75);background:oklch(97% .025 75);border:1px solid oklch(88% .06 75);border-radius:6px;margin-bottom:6px;padding:6px 10px;font-size:12px}.hotel-note{color:var(--ink-soft);font-size:12px;font-style:italic}.activity-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.activity-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:14px 16px}.activity-card-header{justify-content:space-between;margin-bottom:8px;display:flex}.activity-name{font-family:var(--font-display);color:var(--ink);font-size:15px;font-weight:500}.activity-location{color:var(--ink-soft);align-items:center;gap:3px;margin-top:2px;font-size:12px;display:flex}.activity-meta{color:var(--ink-soft);flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.activity-note{color:var(--ink-soft);margin-top:6px;font-size:12px}.gift-overview{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);align-items:center;gap:32px;padding:24px 28px;display:flex}.gift-total-num{font-family:var(--font-display);color:var(--rose-dark);letter-spacing:-.01em;font-size:36px;font-weight:500;line-height:1}.gift-total-label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-ghost);margin-bottom:5px;font-size:12px;font-weight:600}.gift-split{gap:24px;display:flex}.gift-side{border-radius:var(--radius-sm);border:1px solid var(--line-soft);background:var(--surface-alt);flex-direction:column;gap:2px;padding:14px 18px;display:flex}.gift-side-label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-ghost);font-size:11px;font-weight:600}.gift-side-amount{font-family:var(--font-display);color:var(--ink);font-size:22px;font-weight:500}.gift-side-count{color:var(--ink-soft);font-size:12px}.gift-divider{background:var(--line-soft);align-self:stretch;width:1px}.search-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.search-field{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-soft);flex:1;align-items:center;gap:8px;max-width:280px;padding:8px 12px;display:flex}.search-field input{font-family:var(--font-body);color:var(--ink);background:0 0;border:none;outline:none;width:100%;font-size:13px}.search-field input::placeholder{color:var(--ink-ghost)}.gift-mini-stats{color:var(--ink-soft);flex-wrap:wrap;gap:16px;font-size:12px;display:flex}.gift-table-surface{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);overflow:hidden}.gift-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:13px}.gift-table th:first-child{width:22%}.gift-table th:nth-child(2){width:18%}.gift-table th:nth-child(3){width:22%}.gift-table th:nth-child(4){width:auto}.gift-table th:nth-child(5){width:32px}.gift-table th{text-align:left;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-ghost);background:var(--surface-alt);border-bottom:1px solid var(--line-soft);padding:10px 16px;font-size:10px;font-weight:700}.gift-table td{border-bottom:1px solid var(--line-soft);padding:10px 16px}.gift-table tr:last-child td{border-bottom:none}.gift-table tr:hover td{background:var(--surface-alt)}.gift-name-cell{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.gift-table td{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gift-table td:nth-child(4){white-space:normal}.relation-tag{background:var(--cream-deep);color:var(--ink-mid);border-radius:999px;padding:2px 8px;font-size:11px;display:inline-block}.gift-amount-cell{font-family:var(--font-display);color:var(--ink);font-size:15px;font-weight:500}.gift-note-cell{color:var(--ink-soft);font-size:12px}.gift-row-editable td,.gift-row-new td{padding:0!important}.gift-cell-input,.gift-cell-select{border:none;border-right:1px solid var(--line-soft);width:100%;height:38px;font-size:13px;font-family:var(--font-body);color:var(--ink);box-sizing:border-box;background:0 0;border-bottom:none;outline:none;padding:0 12px;transition:background .1s}.gift-cell-input:focus,.gift-cell-select:focus{background:var(--rose-light);border-color:var(--rose-mid);z-index:1;position:relative}.gift-cell-amount{text-align:right}.gift-cell-new{color:var(--ink-soft);background:oklch(98.5% .004 65)}.gift-cell-new::placeholder{color:var(--ink-ghost)}.gift-cell-new:focus{background:var(--rose-light);color:var(--ink)}.gift-row-new{border-top:1px dashed var(--line)}.gift-hint{color:var(--ink-ghost);text-align:center;margin-top:10px;font-size:11px}.gift-view-toggle{border:1px solid var(--line);border-radius:var(--radius-sm);display:flex;overflow:hidden}.gift-view-toggle button{cursor:pointer;color:var(--ink-soft);background:0 0;border:none;align-items:center;padding:6px 10px;transition:background .15s,color .15s;display:flex}.gift-view-toggle button:hover{background:var(--surface-alt)}.gift-view-toggle button.active{background:var(--ink);color:var(--cream)}.gift-charts{grid-template-columns:1fr 1fr;gap:16px;display:grid}.gift-chart-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:20px}.gift-chart-full{grid-column:1/-1}.gift-chart-title{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-ghost);margin-bottom:16px;font-size:11px;font-weight:700}.gift-compare{flex-direction:column;gap:12px;display:flex}.gift-compare-row{align-items:center;gap:10px;display:flex}.gift-compare-label{color:var(--ink-soft);flex-shrink:0;width:44px;font-size:12px}.gift-compare-bar-wrap{background:var(--line-soft);border-radius:4px;flex:1;height:8px;overflow:hidden}.gift-compare-bar{height:100%;transition:width .5s var(--ease-out);border-radius:4px}.gift-compare-bar.groom{background:var(--groom)}.gift-compare-bar.bride{background:var(--bride)}.gift-compare-val{color:var(--ink);text-align:right;flex-shrink:0;width:52px;font-size:12px;font-weight:600}.gift-donut-wrap{align-items:center;gap:16px;display:flex}.gift-donut-legend{flex-direction:column;flex:1;gap:7px;min-width:0;display:flex}.gift-legend-row{align-items:center;gap:6px;font-size:12px;display:flex}.gift-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.gift-legend-label{color:var(--ink-mid);flex:1}.gift-legend-count{color:var(--ink-soft)}.gift-legend-amt{color:var(--ink);margin-left:4px;font-weight:600}.gift-bucket-bars{align-items:flex-end;gap:8px;height:100px;display:flex}.gift-bucket-item{flex-direction:column;flex:1;align-items:center;gap:4px;height:100%;display:flex}.gift-bucket-bar-wrap{flex:1;align-items:flex-end;gap:2px;width:100%;display:flex}.gift-bucket-bar{min-height:3px;transition:height .4s var(--ease-out);opacity:.85;border-radius:3px 3px 0 0;flex:1}.gift-bucket-count{color:var(--ink-mid);min-height:14px;font-size:11px;font-weight:700}.gift-bucket-label{color:var(--ink-ghost);white-space:nowrap;font-size:10px}.gift-bucket-bar.groom-bar{background:var(--groom)}.gift-bucket-bar.bride-bar{background:var(--bride)}@media (width<=500px){.gift-charts{grid-template-columns:1fr}.gift-chart-full{grid-column:1}.gift-donut-wrap{flex-direction:column}}.onboarding-overlay{z-index:1000;background:var(--cream);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.onboarding-card{width:100%;max-width:420px;position:relative}.onboarding-step{text-align:center;animation:ob-in .35s var(--ease-out) both;flex-direction:column;align-items:center;display:flex}@keyframes ob-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.onboarding-brand{flex-direction:column;align-items:center;gap:6px;margin-bottom:32px;display:flex}.onboarding-logo{background:linear-gradient(135deg, var(--rose-light) 0%, var(--cream-dark) 100%);border:1.5px solid var(--rose-mid);width:64px;height:64px;color:var(--rose-dark);letter-spacing:-.02em;border-radius:18px;justify-content:center;align-items:center;font-size:28px;font-weight:700;display:flex}.onboarding-logo-name{letter-spacing:.15em;color:var(--ink-soft);text-transform:uppercase;font-size:13px;font-weight:600}.onboarding-headline{color:var(--ink);letter-spacing:-.03em;margin-bottom:12px;font-size:36px;font-weight:700;line-height:1.1}.onboarding-title{color:var(--ink);letter-spacing:-.025em;margin-bottom:10px;font-size:26px;font-weight:700;line-height:1.2}.onboarding-sub{color:var(--ink-soft);margin-bottom:28px;font-size:14px;line-height:1.65}.onboarding-features{color:var(--ink-soft);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-bottom:36px;font-size:12px;display:flex}.onboarding-dot{color:var(--rose-mid)}.onboarding-step-label{letter-spacing:.12em;color:var(--rose);text-transform:uppercase;margin-bottom:16px;font-size:11px;font-weight:600}.onboarding-form{text-align:left;flex-direction:column;gap:16px;width:100%;margin-bottom:24px;display:flex}.onboarding-name-row{align-items:flex-end;gap:8px;display:flex}.onboarding-name-row .form-group{flex:1}.onboarding-heart-sep{color:var(--rose);flex-shrink:0;padding-bottom:10px}.onboarding-cta{width:100%;margin-bottom:12px;padding:13px;font-size:15px}.onboarding-skip{color:var(--ink-ghost);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:13px;transition:color .15s}.onboarding-skip:hover{color:var(--ink-soft)}.onboarding-invite-block{background:var(--surface-alt);border:1px solid var(--line-soft);border-radius:var(--radius-md);text-align:left;width:100%;margin-bottom:16px;padding:14px 16px}.onboarding-invite-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-ghost);margin-bottom:8px;font-size:10px;font-weight:700}.onboarding-invite-row{align-items:center;gap:10px;display:flex}.onboarding-invite-code{letter-spacing:.18em;color:var(--ink);flex:1;font-size:22px;font-weight:700}.onboarding-divider-text{color:var(--ink-ghost);margin-bottom:12px;font-size:12px;position:relative}.onboarding-join-row{gap:8px;width:100%;display:flex}.onboarding-join-row input{text-align:center;letter-spacing:.1em;flex:1;font-size:15px}.onboarding-done-icon{animation:ob-pop .5s var(--ease-out) .1s both;margin-bottom:20px;font-size:52px}@keyframes ob-pop{0%{opacity:0;transform:scale(.5)}70%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.onboarding-done-date{color:var(--rose);letter-spacing:.02em;font-size:15px;font-weight:600}.onboarding-dots{justify-content:center;gap:6px;margin-top:28px;display:flex}.onboarding-dot-item{background:var(--line);border-radius:50%;width:6px;height:6px;transition:all .2s}.onboarding-dot-item.active{background:var(--rose);border-radius:3px;width:20px}.onboarding-dot-item.done{background:var(--rose-mid)}.settings-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:24px}.settings-card-title{font-family:var(--font-display);color:var(--ink);border-bottom:1px solid var(--line-soft);margin-bottom:18px;padding-bottom:12px;font-size:18px;font-weight:500}.settings-desc{color:var(--ink-soft);margin-bottom:16px;font-size:13px;font-weight:300}.data-action-row{flex-wrap:wrap;gap:10px;display:flex}.settings-danger{background:oklch(98.5% .008 18);border-color:oklch(88% .04 18)}.settings-danger .settings-card-title{color:var(--blush);border-bottom-color:oklch(90% .04 18)}.file-upload-label{border:1px solid var(--line);border-radius:var(--radius-sm);font-family:var(--font-body);color:var(--ink-mid);background:var(--cream-deep);cursor:pointer;align-items:center;gap:6px;padding:8px 18px;font-size:13px;font-weight:500;transition:all .14s;display:inline-flex}.file-upload-label:hover{border-color:var(--rose-mid);color:var(--rose);background:var(--rose-light)}.empty-state{text-align:center;color:var(--ink-soft);padding:40px 20px}.empty-state-icon{margin-bottom:10px;font-size:32px}.empty-state-text{font-family:var(--font-display);color:var(--ink-mid);margin-bottom:6px;font-size:17px;font-style:italic;font-weight:400}.empty-state-sub{color:var(--ink-ghost);font-size:13px}@media (width<=860px){:root{--sidebar-w:260px}.sidebar{transform:translate(-100%)}.sidebar.open{box-shadow:var(--shadow-md);transform:translate(0)}.overlay{display:block}.main{margin-left:0;padding-bottom:72px}.menu-btn{display:flex}.bottom-nav{display:block}.content{padding:16px 16px 24px}.dday-hero{flex-direction:column;gap:16px;padding:22px}.dday-right{text-align:left}.dday-number{font-size:60px}.quick-stats{grid-template-columns:repeat(3,1fr)}.dashboard-cols{grid-template-columns:1fr}.budget-hero{flex-wrap:wrap;gap:16px}.budget-hero-divider{display:none}.budget-hero-bar{flex-basis:100%;width:100%}.gift-overview{flex-wrap:wrap;gap:16px}.gift-divider{display:none}.form-grid,.venue-grid{grid-template-columns:1fr}.day-checklist-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@media (width<=520px){.quick-stats{grid-template-columns:1fr 1fr}.quick-stats .quick-stat:last-child{grid-column:1/-1}.hotel-list,.activity-list,.vendor-grid{grid-template-columns:1fr}.gift-split{flex-direction:column;gap:8px}.tabs{overflow-x:auto}.tab{white-space:nowrap}}.auth-screen{background:var(--cream);min-height:100dvh;padding:var(--gap-md);justify-content:center;align-items:center;display:flex}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:100%;max-width:400px;box-shadow:var(--shadow-md);padding:40px 36px}.auth-brand{font-family:var(--font-display);color:var(--ink);text-align:center;letter-spacing:.02em;margin-bottom:6px;font-size:28px;font-weight:600}.auth-brand-heart{color:var(--rose);margin:0 4px;font-style:normal}.auth-subtitle{text-align:center;color:var(--ink-soft);margin-bottom:28px;font-size:13px}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-submit{justify-content:center;width:100%;height:44px;margin-top:4px;font-size:15px}.auth-message{border-radius:var(--radius-sm);padding:10px 14px;font-size:13px;line-height:1.4}.auth-message.error{color:var(--blush);background:oklch(96% .02 18);border:1px solid oklch(88% .05 18)}.auth-message.success{color:var(--sage);background:oklch(96% .02 145);border:1px solid oklch(88% .05 145)}.auth-switch{text-align:center;color:var(--ink-soft);margin-top:20px;font-size:13px}.auth-switch button{color:var(--rose);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0 2px;font-size:13px;text-decoration:underline}.preview-banner{z-index:500;background:var(--ink);color:var(--cream);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;padding:10px 20px;font-size:12px;display:flex;position:fixed;top:0;left:0;right:0}.preview-banner-cta{border:1px solid var(--rose-mid);color:var(--rose-light);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;padding:4px 12px;font-size:12px;transition:background .15s}.preview-banner-cta:hover{background:oklch(30% .01 55)}.main.has-preview-banner{padding-top:41px}.sidebar.preview .sidebar-signout{color:var(--rose);font-weight:600}.auth-preview-link{color:var(--ink-ghost);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;margin-top:4px;font-size:12px;text-decoration:underline;transition:color .15s}.auth-preview-link:hover{color:var(--ink-soft)}.auth-back{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:13px;transition:color .15s;display:inline-flex}.auth-back:hover{color:var(--ink)}.auth-landing{background:var(--cream);justify-content:center;align-items:center;min-height:100dvh;padding:32px 24px;display:flex}.auth-landing-inner{flex-direction:column;align-items:center;gap:0;width:100%;max-width:400px;display:flex}.auth-landing-brand{align-items:center;gap:10px;margin-bottom:40px;display:flex}.auth-landing-logo{background:linear-gradient(135deg, var(--rose-light), var(--cream-dark));border:1.5px solid var(--rose-mid);width:40px;height:40px;color:var(--rose-dark);border-radius:12px;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex}.auth-landing-wordmark{letter-spacing:.08em;color:var(--ink);font-size:18px;font-weight:700}.auth-landing-hero{text-align:center;margin-bottom:36px}.auth-landing-headline{color:var(--ink);letter-spacing:-.04em;margin-bottom:14px;font-size:48px;font-weight:800;line-height:1.05}.auth-landing-headline em{color:var(--rose);font-style:normal}.auth-landing-sub{color:var(--ink-soft);font-size:15px;line-height:1.65}.auth-landing-features{border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--surface);flex-direction:column;gap:0;width:100%;margin-bottom:28px;display:flex;overflow:hidden}.auth-feature-item{border-bottom:1px solid var(--line-soft);color:var(--ink-mid);align-items:center;gap:12px;padding:12px 16px;display:flex}.auth-feature-item:last-child{border-bottom:none}.auth-feature-item svg{color:var(--rose);flex-shrink:0}.auth-feature-label{color:var(--ink);font-size:13px;font-weight:600}.auth-feature-desc{color:var(--ink-soft);margin-top:1px;font-size:11px}.auth-landing-actions{flex-direction:column;gap:10px;width:100%;display:flex}.auth-cta{justify-content:center;width:100%;height:48px;font-size:15px}.auth-cta-ghost{width:100%;height:44px;color:var(--ink-soft);justify-content:center;font-size:14px}.loading-screen{background:var(--cream);justify-content:center;align-items:center;min-height:100dvh;display:flex}@keyframes heartbeat{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.25)}}.loading-heart{color:var(--rose);font-size:32px;animation:1.2s ease-in-out infinite heartbeat}.sidebar-signout{border:1px solid var(--line);border-radius:var(--radius-sm);width:calc(100% - 32px);color:var(--ink-soft);cursor:pointer;background:0 0;align-items:center;gap:8px;margin:0 16px 16px;padding:8px 12px;font-size:13px;transition:color .15s,border-color .15s;display:flex}.sidebar-signout:hover{color:var(--blush);border-color:var(--blush)}.invite-code-row{margin-bottom:16px}.invite-code-label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:12px;font-weight:500}.invite-code-box{background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:10px 14px;display:flex}.invite-code-text{letter-spacing:.15em;color:var(--rose-dark);flex:1;font-family:monospace;font-size:20px;font-weight:600}.join-row{align-items:flex-end;gap:12px;display:flex}@keyframes weddy-in{0%{opacity:0;transform:translateY(16px)scale(.92)}60%{opacity:1;transform:translateY(-4px)scale(1.04)}to{transform:translateY(0)scale(1)}}@keyframes weddy-out{to{opacity:0;transform:translateY(-8px)scale(.95)}}.weddy-toast{background:var(--rose-dark);color:#fff;letter-spacing:-.01em;box-shadow:0 8px 24px oklch(0% 0% 0% / .18);z-index:9999;animation:weddy-in .4s var(--ease-out) forwards;white-space:nowrap;border-radius:999px;padding:12px 24px;font-size:15px;font-weight:700;position:fixed;bottom:88px;left:50%;transform:translate(-50%)}.budget-chart-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);margin-bottom:8px;padding:20px 24px}.budget-chart-title{color:var(--ink-mid);margin-bottom:10px;font-size:13px;font-weight:600}.budget-chart-legend{gap:16px;margin-bottom:16px;display:flex}.budget-chart-rows{flex-direction:column;gap:12px;display:flex}.budget-chart-row{grid-template-columns:80px 1fr 110px;align-items:center;gap:12px;display:grid}.budget-chart-label{color:var(--ink-mid);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:5px;font-size:12px;display:flex;overflow:hidden}.budget-chart-bars{flex-direction:column;gap:3px;display:flex}.budget-bar-wrap{background:var(--cream-dark);border-radius:4px;height:7px;overflow:hidden}.budget-bar{height:100%;transition:width .6s var(--ease-out);border-radius:4px;min-width:2px}.budget-bar-bg{background:var(--line)}.budget-bar-actual{opacity:.88}.budget-bar-actual.over{background:var(--blush)!important}.budget-chart-pct-col{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.budget-chart-pct{color:var(--ink);font-size:13px;font-weight:700}.budget-chart-pct.over{color:var(--blush)}.budget-chart-amount-sub{color:var(--ink-ghost);white-space:nowrap;font-size:10px}
