/* Shared controls and calmer layouts across the planner. */
:root{--muted:#70776a;--line:#e2e5db;--green:#53664a;--shadow:0 4px 20px #33442b06;--focus:#a6b895}
body{font-size:15px;background:#f8f9f4}
.main{max-width:1510px;padding-top:34px;padding-bottom:65px}
.topbar{height:70px;background:#fffefa;gap:16px}
.topbar-label{font-size:13px}.topbar-date{font-size:12px;display:flex;align-items:center;gap:8px;white-space:nowrap}
.topbar-save{display:inline-flex!important;align-items:center;gap:6px;white-space:nowrap;font-size:11px!important;padding:7px 10px!important;border-radius:20px;background:#edf2e6;color:#53664a!important}
.topbar-save:before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}.topbar-save.save-error{background:#faeae6;color:#a6534c!important}
.sidebar{background:#f2f3ec;padding-top:26px}.brand{padding-bottom:19px}.nav-caption{display:none}
.nav{gap:3px}.nav-section{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:#919985;padding:15px 16px 5px}
.nav button{position:relative;min-height:43px;padding:10px 14px;color:#747e6b;border-radius:10px;font-size:13px;gap:11px;transition:background .15s,color .15s}
.nav button.active{background:#e1e9d7;color:#455e38;box-shadow:inset 3px 0 #7c9567}.nav button.active .icon{stroke-width:1.9}.nav button:hover{background:#e9eee1}
.sidebar-bottom{margin-top:auto}.sidebar-bottom button{font-size:12px}.sidebar-love{padding:16px 6px}
.page-intro{align-items:flex-start;gap:24px;margin-bottom:25px}.page-intro>div:first-child{min-width:0}.page-intro h1{font-size:42px;letter-spacing:-.5px;line-height:1.12;margin:8px 0 10px}.page-intro p{font-size:14px;line-height:1.7;max-width:660px}.page-intro>.flex{padding-top:18px;flex-shrink:0;gap:9px}
.eyebrow{font-size:10px;color:#a36f70}.btn{min-height:44px;padding:11px 18px;border-radius:10px;font-size:13px;font-weight:600;box-shadow:0 2px 3px #293b200a;border:1px solid transparent;transition:background .15s,box-shadow .15s,transform .15s}
.btn:hover{box-shadow:0 5px 13px #33442b14}.btn:active{transform:translateY(0);box-shadow:none}.btn.secondary{border-color:#dce3d2;background:#fffefa;color:#53664a}.btn.smallbtn{min-height:38px;padding:8px 12px}
button:disabled{cursor:default;opacity:.45;box-shadow:none;transform:none}.btn:disabled:hover{background:var(--green)}.btn.secondary:disabled:hover{background:#fffefa}
.textbtn{min-height:36px;font-size:12px;border-radius:7px;padding:6px 8px;gap:6px;line-height:1.4}.textbtn:hover{text-decoration:none;background:#eaf0e1}.textbtn.danger:hover,.iconbtn.danger:hover{background:#f9e9e4}.iconbtn{width:38px;height:38px;border-radius:9px}
.card,.stat,.vendor-card,.timeline-column,.list-stage,.gift-total,.payment-total{box-shadow:var(--shadow)}
small,.small{line-height:1.55}.footnote{font-size:12px;color:#7e8775;line-height:1.8}.badge{font-size:11px;padding:4px 9px}.stat-top{font-size:12px}.stat small{font-size:11px}.stat-value{font-variant-numeric:tabular-nums}
.search{min-height:44px;border-radius:10px;flex:1;max-width:380px;width:280px;padding:10px 13px}.search input{font-size:14px;min-width:0}.search:focus-within{border-color:#8b9d79;box-shadow:0 0 0 3px #a8b79522}.search .icon{width:18px;height:18px}.search input:focus-visible{outline:0}
.toolbar{gap:12px}.tabs{padding:4px;background:#edf0e7;border:1px solid #e3e7da;border-radius:11px;gap:3px}.tabs button{min-height:35px;padding:7px 14px;font-size:12px;color:#76816b;border-radius:8px}.tabs button.active{background:#fffefa;border-color:#dce4d2;color:#4d6640;box-shadow:0 2px 5px #36482b0b;font-weight:600}
.field{font-size:13px;color:#57624e;gap:7px;margin-bottom:18px}.field input,.field textarea,.field select,textarea.input{font-size:14px;min-height:45px;border-radius:9px;border-color:#dae1d1;background:#fffefa;padding:11px 12px}.field small{font-size:11px;font-weight:400;color:#818b75}.field textarea{min-height:96px;line-height:1.65}.form-grid{gap:0 18px}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2379856f' stroke-width='1.8'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E")!important;background-repeat:no-repeat;background-position:right 9px center;background-size:18px;padding-right:31px!important;cursor:pointer}
select option{background:#fffefa;color:#384532;padding:10px}select:disabled{opacity:.5}
.select-control{position:relative;min-width:0;width:100%;border:1px solid #dae1d1;border-radius:9px;background:#fffefa;color:var(--ink);padding:0!important}
.select-control select[data-enhanced]{display:none!important}.select-trigger{width:100%;min-height:42px;padding:9px 11px;display:flex;gap:9px;align-items:center;justify-content:space-between;text-align:left;font:inherit;color:inherit;border-radius:inherit}.select-trigger>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-trigger>svg{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;opacity:.7}.select-trigger:hover{background:#8c9e7010}.select-trigger[aria-expanded=true]{box-shadow:0 0 0 3px #a6b89532}.select-menu{position:fixed;inset:auto;margin:0;padding:6px;background:#fffefa;border:1px solid #d8e1cd;border-radius:12px;color:#3e5035;box-shadow:0 12px 40px #33472a28;z-index:50;max-height:330px;overflow:auto;overscroll-behavior:contain}.select-menu::backdrop{background:transparent}.select-options{display:flex;flex-direction:column;gap:2px}.select-option{display:flex;align-items:center;gap:8px;text-align:left;padding:10px 12px;border-radius:7px;min-height:40px;font-size:13px;width:100%}.select-option[aria-selected=true]{color:#4e693e;background:#eaf0e2;font-weight:600}.select-option[aria-selected=true]:after{content:'✓';margin-left:auto}.select-option:hover,.select-option:focus-visible{background:#eef2e8;outline:0}.select-search{border:1px solid #d9e2cf;border-radius:8px;margin-bottom:6px;width:100%;padding:9px 11px;font-size:13px;background:#f8faf3;color:var(--ink)}.select-empty{padding:18px 12px;font-size:13px;color:var(--muted)}
.guest-summary-line{padding:6px;gap:6px;background:#fffefa;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-radius:14px;margin-bottom:18px}.guest-summary-item{display:flex;align-items:center;justify-content:center;gap:10px;min-height:75px;border-radius:10px;padding:12px 8px;color:#75806a;border:1px solid transparent;text-align:left;transition:background .15s}.guest-summary-item strong{font-family:var(--serif);font-size:32px;font-weight:500;line-height:1}.guest-summary-item span{font-size:12px;line-height:1.4;color:inherit;display:block}.guest-summary-item:hover{background:#f3f6ed}.guest-summary-item.active{border-color:#dbe5cf;background:#edf3e5;color:#506740}.guest-summary-item[data-guest-status=Declined]{color:#94736b}
.compact-groups{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:20px}.compact-groups .group-card{padding:8px 13px;min-height:40px;border-radius:22px;gap:10px;background:#fffefa}.compact-groups .group-card p{font-size:12px;line-height:1.4}.compact-groups .group-card strong{font-family:var(--sans);font-size:11px;padding:2px 6px;background:#eef2e7;border-radius:8px;color:#758768}.compact-groups .group-card.active{background:#e5eddb;border-color:#b6c6a5}.compact-groups .group-card.active strong{background:#d6e1ca;color:#4b653a}
.guest-toolbar{padding:15px;background:#f0f3e9;border:1px solid #e2e8d8;border-radius:12px;align-items:flex-end;margin-bottom:14px}.guest-toolbar>.search{max-width:none}.guest-filter{font-size:11px;gap:5px;min-width:140px}.guest-filter select{max-width:none;width:100%;font-size:13px;min-height:44px}.guest-filter .select-control{font-size:13px}.guest-toolbar>.textbtn{margin-left:auto;min-height:44px}.guest-utilities{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.guest-edit-help{font-size:12px;color:#7d8873;padding:0}.review-button{display:inline-flex;align-items:center;gap:7px;font-size:11px;color:#997a4c;min-height:35px;padding:7px 11px;border-radius:9px;background:#f4eedf;border:1px solid #e8dfc8}.review-button.active{box-shadow:inset 0 0 0 1px #b59968}.review-button .icon{width:16px;height:16px}.filter-state{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:#8a947e;min-height:38px;margin:4px 0 8px}
.guest-list-head{font-size:10px;color:#7d8a70;padding-top:13px;padding-bottom:13px}.guest-entry{min-height:78px;padding-top:14px;padding-bottom:14px}.guest-entry:hover{background:#f8faf3}.guest-entry:focus-within{background:#f2f6e9;box-shadow:inset 3px 0 #b4c69e}.inline-name{font-size:15px;padding:9px 6px;border-radius:7px}.inline-group,.inline-rsvp{font-size:12px;min-height:40px}.select-control.inline-group,.select-control.inline-rsvp{min-height:40px}.inline-rsvp.question-mark{background:#efebf4;color:#87718c;border-color:#dfd4e6}.guest-count-stepper{height:40px}.guest-count-stepper button{height:40px;color:#6e865a}.guest-count-stepper input{font-size:14px}.guest-name-field small{font-size:10px}.guest-row-actions .textbtn{font-size:11px;min-height:36px}.guest-row-actions .iconbtn{height:36px;width:32px}.guest-bulk-bar{position:sticky;top:10px;z-index:3;box-shadow:0 4px 20px #33442b15;font-size:12px}.guest-bulk-bar .select-control{width:190px}.guest-bulk-bar .select-trigger{min-height:36px}
.todo-row .task-name{font-size:14px;line-height:1.6}.task-description{font-size:13px;color:#7c8771}.task-meta{font-size:11px;margin-top:5px}.stage-title small{font-size:11px}.task-list .todo-row{padding:18px 0}.stage-title{background:#f1f4eb}.progress{height:5px}.vendor-card{padding:23px;min-height:225px;border-radius:14px;gap:15px}.vendor-card h2{font-size:28px}.vendor-card .vendor-name{font-size:13px;line-height:1.6;color:#7e8974}.vendor-card .vendor-footer{font-size:13px}.vendor-card .vendor-footer>.textbtn{font-size:12px}.vendor-card:hover{border-color:#c6d2b8}.vendor-symbol{width:42px;height:42px;border-radius:12px}
.payment-total>strong,.gift-total>strong{font-family:var(--sans);font-size:33px;font-weight:500;letter-spacing:-1px;font-variant-numeric:tabular-nums}.payment-total>small,.gift-total>small{font-size:12px}.payment-total>.flex,.gift-total>.flex{font-size:13px}.payment-help,.gift-explainer{font-size:12px;line-height:1.8}.payment-list-head,.payment-row{gap:12px;padding-left:18px;padding-right:18px}.payment-supplier-title{font-size:14px}.payment-supplier>small{font-size:11px}.money-input{border-radius:9px;min-height:44px}.money-input>input{font-size:14px;font-variant-numeric:tabular-nums}.payment-balance strong{font-family:var(--sans);font-size:18px;font-weight:550;font-variant-numeric:tabular-nums}.payment-date>input{min-height:44px;font-size:12px}.payment-draft-label,.gift-draft-label{font-size:10px}.payment-toolbar .search{max-width:380px}.payment-toolbar .guest-filter{margin-left:auto}.gift-guest>strong{font-size:15px}.gift-guest>small{font-size:12px}.gift-note-input{font-size:14px}.gift-row{padding-top:19px;padding-bottom:19px}.gift-list-top{font-size:12px}.gift-field>span{font-size:12px}
.timeline-event{gap:16px;padding-top:22px}.time{font-size:13px}.event-detail h3{font-size:15px}.event-detail p{font-size:13px;line-height:1.7;color:#7c8871}.event-detail .place{font-size:12px}.timeline-event .iconbtn{height:34px;width:34px}.timeline-banner p{font-size:13px;line-height:1.7}.invitation-settings p{font-size:13px;line-height:1.7}.note-card p{font-size:13px;line-height:1.8;color:#8e746f}.notes-area{font-family:var(--sans);font-size:16px;line-height:36px;min-height:350px;background:repeating-linear-gradient(var(--white),var(--white) 35px,#edf0e4 36px);border-radius:10px;padding:7px 12px}.source-detail{font-size:12px}.source-detail summary{min-height:24px}.source-detail summary:after{content:'+';margin-left:auto;font-size:17px;color:#8a9c79}.source-detail[open] summary:after{content:'−'}
dialog{padding:27px 30px 0;border:1px solid #dce3d2;border-radius:18px;box-shadow:0 25px 90px #24351c35;max-height:90svh;scroll-padding:90px 0 90px}dialog::backdrop{background:#2b392559;backdrop-filter:blur(4px)}.modal-header{position:sticky;top:-27px;padding:23px 0 17px;margin-top:-23px;margin-bottom:18px;background:#fffefa;z-index:3;border-bottom:1px solid #e8eddf}.modal-header h2{font-size:31px;letter-spacing:-.3px}.form-actions{position:sticky;bottom:0;margin:12px -30px 0;padding:17px 30px;background:#fffefa;border-top:1px solid #e5ebdb;z-index:2;flex-wrap:wrap}.form-actions>.danger{margin-right:auto}.guest-more{border:1px solid #e3e9d9;background:#f8faf3;border-radius:11px;padding:0 15px;margin:6px 0 17px}.guest-more summary{padding:13px 0;min-height:44px;color:#71825f}.guest-more .form-grid{margin-top:7px}.guest-status-help{font-size:11px;line-height:1.7;margin-top:-5px;margin-bottom:16px}.form-error{background:#f9eae5;color:#a15147;border:1px solid #eecdc1;border-radius:9px;padding:12px;margin:10px 0;font-size:13px}.discard-prompt{position:sticky;bottom:0;background:#fff3df;padding:18px;margin:0 -30px;border-top:1px solid #e6cca3;z-index:5;font-size:14px;box-shadow:0 -12px 35px #493c2010}.discard-prompt p{font-size:12px;margin:4px 0 12px;color:#947d54}.page-menu-grid{display:grid;gap:6px;padding-bottom:25px}.page-menu-grid button{display:flex;align-items:center;gap:12px;text-align:left;padding:12px;border:1px solid #e7ecdd;border-radius:10px;font-size:14px;min-height:48px}.page-menu-grid button span{flex:1}.page-menu-grid button>.icon:last-child{width:16px;color:#8b9a7a}.page-menu-grid button.active{background:#e7efdc;color:#506b3e;border-color:#c4d3b4}
#draft-bar{position:fixed;bottom:18px;left:calc(50% + 114px);transform:translateX(-50%);width:min(800px,calc(100vw - 278px));background:#fffefa;border:1px solid #c4d5b3;border-radius:14px;padding:13px 18px;z-index:8;box-shadow:0 8px 35px #33442b24;display:flex;align-items:center;justify-content:space-between;gap:16px}#draft-bar[hidden]{display:none}#draft-bar strong{font-size:13px;font-weight:600;color:#526744}#draft-bar small{display:block;font-size:11px;color:#88977b;margin-top:2px}.has-drafts .main{padding-bottom:130px}.has-drafts #toast{bottom:114px}#toast{max-width:min(640px,90vw);font-size:13px;border-radius:12px;line-height:1.6}.form-draft-notice{font-size:12px;color:#947641;margin:10px 0}
@media(max-width:1150px){.page-intro{flex-wrap:wrap;gap:10px}.page-intro>.flex{padding-top:3px}.payment-list-head,.payment-row{gap:10px}.guest-summary-item{gap:7px;flex-direction:column;text-align:center;min-height:90px}.guest-summary-item strong{font-size:30px}.guest-toolbar .search{flex-basis:100%}.guest-toolbar .guest-filter{flex:1}.guest-toolbar>.textbtn{margin-left:0}.payment-total>strong,.gift-total>strong{font-size:28px}}
@media(max-width:850px){.nav-section{display:none}.nav button{padding:13px;min-height:47px}.sidebar{padding:20px 8px}.brand{padding:0 8px 24px}.topbar-save{display:none!important}.guest-toolbar .guest-filter{min-width:100px}.guest-summary-item span{font-size:11px}.guest-summary-item strong{font-size:28px}.topbar{padding:0 24px}.main{padding:25px 24px 65px}.guest-entry{padding:16px}.inline-name{font-size:16px}.guest-row-actions{padding-top:7px}.guest-row-actions .textbtn{font-size:12px}.guest-row-actions .iconbtn{width:38px;height:38px}.gift-guest>strong{font-size:15px}#draft-bar{left:calc(50% + 36px);width:calc(100vw - 110px)}#draft-bar small{display:none}}
@media(max-width:600px){body{font-size:14px}.topbar{height:64px;padding:0 16px}.topbar-date{display:none}.main{padding:23px 16px 105px}.page-intro{margin-bottom:20px;gap:14px}.page-intro h1{font-size:36px;margin-top:7px}.page-intro p{font-size:13px}.page-intro>.flex{width:100%;display:flex}.page-intro>.flex>.btn{flex:1;padding:10px 12px;font-size:12px}.btn{min-height:44px}.textbtn{min-height:40px}.toolbar .search{max-width:none;width:100%;flex-basis:100%}.tabs{width:100%;gap:2px;flex-wrap:wrap}.tabs button{flex:1;padding:8px 9px;white-space:nowrap}.guest-summary-line{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:5px}.guest-summary-item{min-height:74px;padding:10px 6px;gap:5px}.guest-summary-item strong{font-size:28px;display:block;margin:0}.guest-summary-item span{font-size:10px}.guest-summary-item:first-child{grid-row:span 2;min-height:100%;background:#edf3e5;justify-content:center}.guest-summary-item:first-child strong{font-size:40px}.compact-groups{display:flex;gap:6px;margin-bottom:16px}.compact-groups .group-card{padding:8px 11px;gap:7px;min-height:36px}.compact-groups .group-card p{font-size:11px}.compact-groups .group-card strong{font-size:10px}.guest-toolbar{gap:10px;padding:12px;margin-top:0}.guest-toolbar .guest-filter{flex:1;min-width:0}.guest-toolbar>.textbtn{font-size:11px;margin-left:auto;min-height:40px}.guest-toolbar .search input{font-size:16px}.guest-filter select{font-size:14px;min-height:44px}.guest-utilities{gap:8px}.guest-edit-help{font-size:11px;align-items:flex-start}.review-button{font-size:11px}.filter-state{font-size:10px;line-height:1.7;align-items:flex-start;padding:4px 0}.filter-state .textbtn{font-size:11px;white-space:nowrap;min-height:28px}.guest-list-top{font-size:11px}.inline-group,.inline-rsvp{font-size:12px;min-height:42px;padding:8px 28px 8px 9px!important}.guest-entry{grid-template-columns:20px minmax(90px,1fr) 94px;gap:8px;padding:14px 12px}.guest-count-stepper{height:40px}.guest-count-stepper button{width:26px}.guest-count-stepper input{width:40px}.guest-name-field small{font-size:10px;line-height:1.6}.guest-bulk-bar{top:74px}.form-grid{gap:0 13px}.field input,.field textarea,.field select,textarea.input{font-size:16px}.field{font-size:12px}.field small{font-size:11px}.todo-row .task-name{font-size:14px}.task-description{font-size:12px}.task-actions{gap:3px}.task-actions .badge{font-size:9px}.task-list{padding-left:16px;padding-right:13px}.task-check{width:23px;height:23px}.vendor-card{padding:19px;min-height:220px}.vendor-card h2{font-size:25px}.vendor-card .vendor-name{font-size:12px}.vendor-card .vendor-footer{font-size:11px;gap:5px;flex-wrap:wrap}.vendor-card .vendor-footer .textbtn{font-size:11px;padding-left:0}.payment-total>strong,.gift-total>strong{font-size:25px;letter-spacing:-.5px}.payment-total>small,.gift-total>small{font-size:11px}.payment-total>.flex,.gift-total>.flex{font-size:12px}.payment-help,.gift-explainer{font-size:12px}.payment-toolbar .guest-filter{margin-left:0;width:100%}.money-input>input,.gift-note-input{font-size:16px}.payment-date>input{font-size:14px}.payment-balance strong{font-size:20px}.payment-row .payment-field>span,.payment-row .payment-balance>span{font-size:11px}.gift-field>span{font-size:11px}.event-detail h3{font-size:14px}.event-detail p{font-size:12px}.time{font-size:12px}.timeline-event{gap:11px}.timeline-event:before{left:53px}.event-detail .place{font-size:11px}.notes-area{font-size:16px;padding:4px 3px}.source-detail{font-size:11px}dialog{padding:23px 20px 0;width:calc(100vw - 20px);max-height:93svh;border-radius:16px;scroll-padding:75px 0 95px}.modal-header{top:-23px;padding-top:21px;margin-top:-21px}.modal-header h2{font-size:28px}.form-actions{margin-left:-20px;margin-right:-20px;padding:13px 20px;padding-bottom:calc(13px + env(safe-area-inset-bottom));gap:8px}.form-actions .btn{font-size:12px;padding:10px 12px;flex:1}.form-actions>.danger{flex-basis:100%;justify-content:flex-start}.discard-prompt{margin:0 -20px;padding:17px 20px}.modal-note{font-size:12px}.guest-status-help{font-size:11px}.mobile-bottom-nav{box-shadow:0 -4px 25px #33442b0b;padding-top:6px}.mobile-bottom-nav button{font-size:10px;min-height:47px}.mobile-menu select{font-size:14px;max-width:200px;padding-left:0}.mobile-menu .rings{width:30px;height:30px;color:#a97774}.mobile-actions{gap:10px}#draft-bar{left:12px;right:12px;bottom:84px;transform:none;width:auto;padding:12px;gap:8px;flex-wrap:wrap;border-radius:12px}#draft-bar>.flex{margin-left:auto;gap:5px}#draft-bar strong{font-size:12px}#draft-bar .btn{font-size:12px;min-height:40px;padding:9px 11px}#draft-bar .textbtn{font-size:11px}.has-drafts .main{padding-bottom:210px}.has-drafts #toast{bottom:170px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.nav-section,.topbar-save,.guest-utilities,.guest-toolbar,.filter-state,#draft-bar,.form-actions{display:none!important}.select-control{border:0;background:transparent}.select-trigger svg{display:none}.guest-summary-line{display:flex}.guest-summary-item{min-height:0}.guest-summary-item.active{border:0}.main{padding:0}.payment-total,.gift-total{box-shadow:none}}
.form-draft-notice{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:9px 12px;background:#f5f0df;border:1px solid #e9dfc5;border-radius:9px}.form-draft-notice .textbtn{font-size:11px;min-height:30px}
.sidebar-bottom .save-state{display:none!important}
@media(max-width:850px){.topbar-save{display:inline-flex!important}}
@media(max-width:600px){.topbar-save{font-size:0!important;min-width:8px;padding:0!important;background:transparent;gap:0}.topbar>.flex{gap:10px}.guest-toolbar .guest-filter{flex:1 1 calc(50% - 6px)}.guest-toolbar>.textbtn{flex-basis:100%;justify-content:flex-end;min-height:28px;padding:0 3px}}
select{background-repeat:no-repeat!important;background-position:right 9px center!important;background-size:18px 18px!important}
.form-actions>.primary-save{order:2}
