@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600&display=swap');
.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}
.page-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}@media(max-width:700px){.page-actions{justify-content:flex-start;margin-top:16px}.page-head .page-actions .button{margin-top:0}}
.budget-legend{display:flex;flex-wrap:wrap;gap:18px;margin:20px 0;font-size:12px}.budget-legend span{display:flex;gap:7px;align-items:center}.budget-color{display:block;height:100%;border-radius:3px}.budget-planned{background:var(--green)}.budget-actual{background:var(--coral)}.budget-paid{background:#71899b}.budget-legend i{width:11px;height:11px}
.budget-chart-list{list-style:none;padding:0;margin:0}.budget-chart-list li{display:grid;grid-template-columns:minmax(130px,1fr) minmax(0,3fr);align-items:center;gap:20px;padding:17px 0;border-top:1px solid var(--line)}.budget-type{font-size:13px;overflow-wrap:anywhere}.budget-bars{display:grid;gap:5px;min-width:0}.budget-bar-row{display:flex;align-items:center;gap:12px}.budget-bar-track{flex:1;min-width:0;height:9px;background:#f1eee7;border-radius:3px}.budget-bar-value{width:105px;flex:none;text-align:right;font-size:11px;font-variant-numeric:tabular-nums}.budget-description{white-space:pre-wrap;overflow-wrap:anywhere;max-width:320px}.budget-table td{vertical-align:top}.budget-table td:first-child{min-width:190px}.budget-table td:nth-child(2){min-width:160px}.budget-table td:nth-child(n+3):nth-child(-n+6){white-space:nowrap}
@media(max-width:600px){.budget-chart-list li{grid-template-columns:1fr;gap:10px}.budget-bar-value{width:95px}.budget-chart{padding:18px}}
main:focus{outline:none}
.spaced{margin-top:24px}.danger{background:#fbece8!important;border-color:#b45145!important;color:#8d352b!important}.completed{text-decoration:line-through;opacity:.55}.appointment{display:flex;gap:15px;align-items:center;padding:15px 0;border-top:1px solid var(--line)}.appointment>div:nth-child(2){flex:1}.date-badge{display:grid;text-align:center;background:var(--sage);padding:8px 13px;border-radius:10px;min-width:58px}.date-badge strong{font-size:24px;line-height:1.2}.date-badge span{font-size:11px}fieldset{border:1px solid var(--line);border-radius:8px;margin-top:18px}legend{font-size:12px;font-weight:700}.check-option{display:flex;align-items:center;gap:9px;padding:7px 0;font-size:13px}dialog{max-height:90vh;overflow-y:auto}.toolbar select{padding:10px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink)}.item>div:first-child{min-width:0}.item-title{overflow-wrap:anywhere}a.button{display:inline-block}.stat strong{overflow-wrap:anywhere}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--coral);outline-offset:3px}@media(max-width:700px){.item{align-items:flex-start;flex-wrap:wrap}.row-actions{flex-wrap:wrap}.appointment{flex-wrap:wrap}.toolbar select{max-width:100%}.stats[style]{grid-template-columns:1fr 1fr!important}}
:root{--ink:#263c37;--muted:#68736d;--paper:#f8f5ef;--white:#fffefa;--line:#e9e5db;--green:#254c40;--sage:#e7eee8;--coral:#bd745f;--sand:#ede2d3;--shadow:0 18px 50px rgba(37,56,45,.07)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 'DM Sans',sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.app-shell{display:flex;min-height:100vh}.sidebar{width:250px;flex:none;background:#fffdf8;border-right:1px solid var(--line);padding:31px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;margin:0 8px 54px;font-size:12px;font-weight:700;letter-spacing:.13em;line-height:1.35}.brand small{display:block;font-size:9px;letter-spacing:.2em;color:var(--coral);margin-top:3px}.brand-mark{font:38px/1 'Playfair Display',serif;position:relative}.brand-mark span{font:12px/1 'DM Sans',sans-serif;position:absolute;top:2px;right:-9px;color:var(--coral)}.sidebar-label,.eyebrow,.section-kicker{font-size:10px;font-weight:700;letter-spacing:.17em;color:#a28e7e}.sidebar-label{padding:0 16px;margin-bottom:12px}nav{display:grid;gap:5px}nav a{padding:11px 15px;border-radius:9px;color:#65716b;font-size:13px;font-weight:600;display:flex;gap:14px;align-items:center}nav a span{font-size:18px;width:20px;text-align:center;font-weight:400}nav a.active,nav a:hover{background:#eaf0e9;color:var(--green)}.sidebar-bottom{margin-top:auto;background:#f3f0e9;border-radius:12px;padding:19px;font-size:12px;color:var(--muted)}.sidebar-bottom p{margin:8px 0 13px}.book-badge{font-size:9px;font-weight:700;letter-spacing:.14em;color:var(--coral)}.text-button{display:block;border:0;background:none;color:var(--green);font-size:11px;font-weight:700;padding:5px 0;text-align:left}.main-wrap{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;border-bottom:1px solid var(--line);background:rgba(255,254,250,.72)}.topbar-right{font-size:11px;color:var(--muted)}.status-dot{display:inline-block;width:7px;height:7px;background:#8aa889;border-radius:50%;margin-right:6px}.menu-btn{display:none;border:0;background:none;color:var(--green)}main{width:min(1120px,90%);margin:0 auto;flex:1;padding:42px 0 80px}footer{text-align:center;border-top:1px solid var(--line);padding:22px;color:#9b9d95;font-size:11px}footer span{margin:0 9px}.page-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:26px}.page-head h1,.hero h1{font:400 clamp(32px,4vw,52px)/1.12 'Playfair Display',serif;letter-spacing:-.025em;margin:7px 0 12px}.page-head p{color:var(--muted);max-width:680px;margin:0}.button{border-radius:8px;padding:11px 17px;font-size:12px;font-weight:700;border:1px solid transparent;white-space:nowrap}.button-primary{background:var(--green);color:white}.button-primary:hover{background:#173b30}.button-light{background:white;border-color:#dce4dc;color:var(--green)}.button-ghost{background:transparent;color:var(--green);border-color:#cbd6cc}.hero{background:linear-gradient(115deg,#e9eee6 0%,#f3ede2 62%,#f1ded4 100%);border-radius:16px;padding:52px 6%;position:relative;overflow:hidden;min-height:300px;display:flex;align-items:center}.hero:after{content:'✦';position:absolute;right:7%;top:8%;font-size:210px;color:rgba(255,255,255,.35);line-height:1}.hero>div{position:relative;z-index:1;max-width:600px}.hero p{color:#5c6b63;max-width:510px}.hero .button{display:inline-block;margin-top:12px}.hero h1 em{font-style:italic;color:#a76d5c}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0 34px}.stat,.card,.panel{background:var(--white);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.stat{padding:21px}.stat strong{font:400 30px/1 'Playfair Display',serif;display:block;margin-bottom:5px}.stat span{font-size:11px;color:var(--muted)}.grid-2{display:grid;grid-template-columns:1.35fr 1fr;gap:20px}.panel{padding:24px}.panel h2,.section-title{font:400 23px 'Playfair Display',serif;margin:0 0 16px}.section-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.section-row h2{margin:0}.small-link{font-size:11px;font-weight:700;color:var(--green)}.item{border-top:1px solid var(--line);padding:13px 0;display:flex;justify-content:space-between;align-items:center;gap:12px}.item:first-of-type{border-top:0}.item-title{font-size:13px;font-weight:700}.item-sub{font-size:11px;color:var(--muted);margin-top:3px}.pill{display:inline-block;background:#e7eee8;color:#476b58;border-radius:30px;padding:4px 9px;font-size:10px;font-weight:700;white-space:nowrap}.pill.wait{background:#f7eadb;color:#a37741}.pill.done{background:#e2eee6;color:#3b7654}.pill.no{background:#f4e8e3;color:#9d6456}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{padding:23px}.card h3{font:400 20px 'Playfair Display',serif;margin:8px 0}.card p{font-size:12px;color:var(--muted);margin:0 0 14px}.card .number{color:var(--coral);font:400 27px 'Playfair Display',serif}.card-footer{border-top:1px solid var(--line);padding-top:12px;margin-top:18px;display:flex;justify-content:space-between;align-items:center}.toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:18px;flex-wrap:wrap}.search{border:1px solid var(--line);background:white;border-radius:8px;padding:10px 12px;min-width:230px}.table-wrap{overflow:auto;background:var(--white);border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{background:#f2f0e9;font-size:10px;letter-spacing:.1em;color:#8a9188;text-transform:uppercase}th,td{padding:14px 17px;border-bottom:1px solid var(--line)}tr:last-child td{border-bottom:0}td strong{font-size:13px}.row-actions{display:flex;gap:8px}.icon-button{border:0;background:none;color:var(--green);font-size:12px;font-weight:700}.empty{padding:35px;text-align:center;color:var(--muted);font-size:13px}.note{background:#eef1e9;border-left:3px solid #78947a;padding:16px 18px;border-radius:5px;font-size:12px;color:#56665b;margin:20px 0}.progress{height:8px;background:#eeeae1;border-radius:10px;overflow:hidden;margin:10px 0}.progress i{display:block;height:100%;background:#8aa889;border-radius:10px}.money{font:400 32px 'Playfair Display',serif}.field{display:grid;gap:5px;margin:12px 0}.field label{font-size:11px;font-weight:700;color:#52635a}.field input,.field textarea,.field select{border:1px solid #dedfd6;border-radius:7px;background:white;padding:10px;color:var(--ink);width:100%}.field textarea{min-height:90px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.public-frame{background:#fffdf9;border:1px solid var(--line);border-radius:14px;overflow:hidden}.public-nav{display:flex;justify-content:space-between;align-items:center;padding:18px 30px;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.1em}.public-brand{font:400 22px 'Playfair Display',serif;letter-spacing:0}.public-hero{background:linear-gradient(135deg,#e6ece2,#efdcd1);padding:60px 10%;text-align:center}.public-hero h2{font:400 clamp(36px,6vw,62px)/1.1 'Playfair Display',serif;margin:12px 0}.public-section{padding:38px 9%;text-align:center}.public-section h3{font:400 28px 'Playfair Display',serif;margin:0 0 10px}.public-section p{max-width:590px;margin:0 auto;color:var(--muted)}.public-details{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:left;margin-top:26px}.public-details div{background:#f5f2eb;padding:17px;border-radius:9px}.public-details small{display:block;color:var(--coral);font-size:10px;font-weight:700;letter-spacing:.12em;margin-bottom:6px}.public-details strong{font-size:13px}.public-rsvp{background:#e8eee8}.divider{height:1px;background:var(--line);margin:24px 0}dialog{border:0;border-radius:14px;padding:28px;width:min(520px,92vw);box-shadow:0 24px 90px #172d2d33;color:var(--ink)}dialog::backdrop{background:#1b322baa}dialog h2{font:400 27px 'Playfair Display',serif;margin:0 0 14px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.mobile-overlay{display:none}@media(max-width:900px){.sidebar{width:205px;padding:24px 12px}.stats{grid-template-columns:repeat(2,1fr)}.cards{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}}@media(max-width:700px){.sidebar{position:fixed;left:-270px;z-index:20;width:250px;transition:left .2s}.sidebar.open{left:0}.mobile-overlay.show{display:block;position:fixed;inset:0;background:#172d2d88;z-index:19}.menu-btn{display:block}.topbar{padding:0 5%;height:60px}.topbar .eyebrow{display:none}main{width:92%;padding:26px 0 60px}.hero{padding:35px 7%;min-height:250px}.hero:after{font-size:140px}.stats,.cards,.form-grid{grid-template-columns:1fr 1fr}.page-head{display:block}.page-head .button{margin-top:16px}.public-details{grid-template-columns:1fr}.public-nav{padding:15px}.topbar-right{font-size:10px}}@media(max-width:480px){.stats,.cards,.form-grid{grid-template-columns:1fr}.hero h1{font-size:36px}.stat strong{font-size:25px}}
