@font-face{font-family:Work Sans;src:url('assets/WorkSans-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/CormorantGaramond-Variable.ttf') format('truetype');font-weight:300 700;font-display:swap}
:root{color-scheme:light;--paper:#fcf6ee;--surface:#fffdf9;--ink:#4c3c36;--muted:#76635b;--accent:#a44660;--wash:#f5e7e9;--line:#dfd0c6;--positive:#476452;--danger:#a33441;--radius:12px;font-family:Work Sans,Arial,sans-serif;font-size:15px}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper)}body[data-palette=blue]{--accent:#365f7d;--wash:#e6edf1;--line:#d0d9dc}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{min-height:44px;border:1px solid var(--line);border-radius:7px;background:var(--surface);padding:10px 15px;cursor:pointer;font-weight:500}button:hover{background:var(--wash);border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{filter:brightness(.92)}button.danger{color:var(--danger);border-color:var(--danger)}a{color:var(--accent);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}::selection{background:var(--wash);color:var(--ink)}input,textarea{caret-color:var(--accent)}input,select,textarea{width:100%;min-height:44px;border:1px solid #b6a299;background:var(--surface);border-radius:6px;padding:10px 11px}input[type=checkbox]{accent-color:var(--accent);width:22px;min-height:22px;height:22px;margin:0;flex:none}textarea{resize:vertical;min-height:90px}label{display:grid;gap:7px;font-size:14px;font-weight:500}small,.muted{color:var(--muted)}p{line-height:1.6;max-width:72ch}h1,h2,h3{font-family:Cormorant,Georgia,serif;line-height:1.05;font-weight:600;margin:0;text-wrap:balance}h1{font-size:44px}h2{font-size:30px}h3{font-size:25px}svg{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.skip-link{position:fixed;top:-80px;left:12px;padding:12px;background:var(--surface);z-index:10}.skip-link:focus{top:10px}.app-shell{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;padding:34px 20px 24px;background:#f4eee6;border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font:600 31px/1 Cormorant,Georgia,serif}.brand svg{width:43px;color:var(--accent);flex:none}.brand-caption{display:block;font:13px/1.7 Work Sans,Arial,sans-serif;color:var(--muted);margin-top:5px}.main-nav{display:grid;gap:5px;margin-top:48px}.main-nav a{padding:13px 16px;min-height:46px;border-radius:7px;text-decoration:none;color:var(--ink)}.main-nav a:hover{background:#ffffff80}.main-nav a[aria-current=page]{background:var(--wash);color:var(--accent);font-weight:600}.sidebar-bottom{margin-top:auto;padding-top:30px}.sidebar-bottom select{font-size:12px;padding:9px 7px}.sidebar-bottom p{font-size:12px;line-height:1.6;margin:18px 0 8px}.text-button{border:0;background:transparent;padding:5px 0;color:var(--accent);text-align:left;text-decoration:underline;text-underline-offset:4px;font-size:13px}.text-button:hover{background:transparent}.sidebar-bottom .text-button{display:block}.workspace-shell{min-width:0}.topbar{height:85px;padding:19px 40px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar #save-status{font-size:12px;color:var(--muted)}.backup-actions{display:flex;gap:9px}.backup-actions button{font-size:13px}main{padding:38px 40px 45px;max-width:1400px;margin:0 auto;outline:0!important}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:30px}.page-heading p{margin:10px 0 0;color:var(--muted)}.page-heading .heading-actions{display:flex;flex-wrap:wrap;gap:10px}.event-overview{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:36px;align-items:center;padding-bottom:34px}.event-overview h1{font-size:47px;max-width:700px}.event-overview .intro{margin:12px 0 20px;color:var(--muted)}.event-place{display:flex;gap:20px;flex-wrap:wrap;font-size:14px}.event-place span{max-width:100%;overflow-wrap:anywhere}.event-stamp{border:1px solid var(--accent);border-radius:var(--radius);padding:24px 20px;text-align:center;background:var(--surface);outline:5px dotted var(--line);outline-offset:5px;position:relative}.event-stamp .stamp-date{font:500 31px/1.05 Cormorant,Georgia,serif;color:var(--accent);margin:9px 0}.event-stamp svg{width:44px;height:30px;color:var(--accent)}.event-stamp p{font-size:12px;margin:7px 0}.stats-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:15px 0 38px}.stat{padding:23px 20px 21px;border-right:1px solid var(--line)}.stat:first-child{padding-left:0}.stat:last-child{border:0}.stat strong{display:block;font:600 35px/1.1 Cormorant,Georgia,serif;color:var(--accent);font-variant-numeric:tabular-nums;margin:6px 0}.stat span{font-size:13px;color:var(--muted)}.stat .caption{color:var(--ink);font-size:14px}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);gap:36px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.section-heading a{font-size:13px;white-space:nowrap}.task-preview{list-style:none;margin:0;padding:0}.task-preview li{display:flex;gap:14px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.task-preview label{display:flex;gap:14px;align-items:center;flex:1;line-height:1.4}.task-preview small{font-size:12px;white-space:nowrap}.planner-note{padding:25px 26px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.planner-note p{font-size:14px;margin:14px 0 20px}.planner-note .primary{width:100%}.summary-strip{display:flex;flex-wrap:wrap;gap:18px 30px;border-block:1px solid var(--line);padding:18px 0;margin-bottom:24px;font-size:13px}.summary-strip strong{font-variant-numeric:tabular-nums;font-size:19px;color:var(--accent);margin-right:6px}.toolbar{display:flex;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:22px}.toolbar label{min-width:150px}.toolbar .search-label{flex:1;max-width:450px}.toolbar input,.toolbar select{background:var(--surface)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}table{width:100%;border-collapse:collapse;min-width:640px;font-size:14px}th{text-align:left;font-weight:500;font-size:12px;color:var(--muted);padding:16px;background:var(--paper);border-bottom:1px solid var(--line)}td{padding:15px 16px;border-bottom:1px solid var(--line);vertical-align:middle;overflow-wrap:anywhere}tr:last-child td{border-bottom:0}.cell-title{font-weight:500}.cell-note{display:block;color:var(--muted);font-size:12px;line-height:1.45;margin-top:5px;max-width:330px;white-space:pre-line}.numeric{font-variant-numeric:tabular-nums}.row-actions{display:flex;gap:6px;white-space:nowrap}.row-actions button{font-size:12px;min-height:40px;padding:8px 10px}.badge{display:inline-block;padding:5px 9px;border-radius:20px;font-size:12px;background:var(--wash);color:var(--accent);white-space:nowrap}.badge.yes,.badge.paid{background:#e7eee6;color:#35543f}.badge.no{background:#f6e8e5;color:#8b3944}.empty-state{padding:40px 24px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.empty-state h2{margin-bottom:12px}.empty-state p{margin:0 auto 18px;color:var(--muted);font-size:14px}.editor-panel{padding:27px 28px;border:1px solid var(--accent);border-radius:var(--radius);background:var(--surface);margin-bottom:28px}.editor-panel h2{margin-bottom:21px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:24px}.form-error{color:var(--danger);font-size:14px;line-height:1.5;margin:14px 0 0}.form-note{font-size:12px;color:var(--muted);margin:12px 0 0}.notice{padding:13px 40px;background:var(--wash);color:var(--accent);font-size:14px;line-height:1.5}.notice.warning{background:#f8e5dc;color:#813c2d}.example-banner{padding:12px 40px;background:var(--wash);display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:13px}.inline-delete{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 18px;margin-bottom:20px;border:1px solid var(--danger);border-radius:7px;background:var(--surface)}.inline-delete p{margin:0;flex:1;min-width:200px;font-size:14px}.checklist-group{margin-top:30px}.checklist-group h2{font-size:26px;margin-bottom:12px}.checklist-row{display:grid;grid-template-columns:26px minmax(0,1fr) 110px auto;gap:14px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.checklist-row .task-title{line-height:1.45;cursor:pointer}.checklist-row.done .task-title{text-decoration:line-through;color:var(--muted)}.checklist-row .due{font-size:12px;line-height:1.5}.overdue{color:var(--danger)!important}.timeline-row{display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:20px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}.timeline-time{font:600 28px Cormorant,Georgia,serif;color:var(--accent);font-variant-numeric:tabular-nums}.timeline-description{font-size:16px;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}.timeline-list{padding:0 5px}.timeline-row .row-actions button{min-width:42px}.timeline-row .row-actions svg{width:16px;height:16px}.app-footer{padding:24px 40px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:11px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:16px;padding:30px;max-width:570px;width:calc(100% - 30px);color:var(--ink);background:var(--surface)}dialog::backdrop{background:#382b264d}dialog h2{font-size:32px}dialog p{font-size:14px}.dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}#print-schedule{display:none}.print-heading{font:36px Cormorant,Georgia,serif}.event-form{max-width:900px}.budget-alert{padding:15px 18px;background:#f8e5dc;color:#813c2d;border-radius:7px;margin-bottom:22px}.budget-meter{height:8px;border:0;background:var(--wash);border-radius:6px;width:100%;margin-top:12px;overflow:hidden}.budget-meter span{display:block;height:100%;background:var(--accent)}.summary-text{font-size:14px;color:var(--muted);margin:14px 0 26px}.summary-text strong{color:var(--ink)}
[hidden]{display:none!important}@media(max-width:1050px){.app-shell{grid-template-columns:205px minmax(0,1fr)}.sidebar{padding-inline:15px}main{padding:30px 26px}.topbar,.app-footer{padding-inline:26px}.event-overview{grid-template-columns:minmax(0,1fr) 190px;gap:25px}.event-overview h1{font-size:40px}.event-stamp{padding:20px 12px}.dashboard-columns{grid-template-columns:1fr}.stat{padding-inline:12px}.stat strong{font-size:30px}.checklist-row{grid-template-columns:26px minmax(0,1fr) 95px}.checklist-row .row-actions{grid-column:2/-1}.timeline-row{grid-template-columns:80px minmax(0,1fr)}.timeline-row .row-actions{grid-column:2}}
@media(max-width:740px){.app-shell{display:block}.sidebar{position:static;height:auto;padding:18px;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:29px}.brand svg{width:36px}.brand-caption{display:inline;margin-left:10px;font-size:12px}.main-nav{display:flex;overflow-x:auto;gap:4px;margin-top:20px;padding-bottom:4px}.main-nav a{padding:11px 13px;white-space:nowrap;font-size:13px}.sidebar-bottom{display:none}.topbar{height:auto;min-height:78px;padding:15px 18px;gap:10px;flex-wrap:wrap}.backup-actions button{padding:8px 10px;font-size:12px}.topbar #save-status{font-size:11px}.notice,.example-banner{padding:12px 18px}.example-banner{align-items:flex-start;flex-direction:column;gap:4px}main{padding:27px 18px 35px}.page-heading{gap:16px;flex-wrap:wrap;margin-bottom:24px}h1{font-size:36px}.page-heading p{font-size:14px}.event-overview{grid-template-columns:1fr;padding-bottom:22px;gap:25px}.event-overview h1{font-size:39px}.event-stamp{display:none}.event-place{gap:9px;flex-direction:column}.stats-row{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:28px}.stat{padding:18px 12px!important}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.stat strong{font-size:31px}.dashboard-columns{gap:28px}.section-heading h2{font-size:27px}.task-preview small{white-space:normal;text-align:right;max-width:80px}.task-preview label{font-size:13px}.form-grid{grid-template-columns:1fr;gap:18px}.editor-panel{padding:22px 18px}.summary-strip{gap:16px 22px}.toolbar{gap:14px}.toolbar label{min-width:130px}.toolbar .search-label{max-width:none;flex-basis:100%}.checklist-row{grid-template-columns:24px minmax(0,1fr);gap:10px}.checklist-row .due{grid-column:2}.checklist-row .row-actions{grid-column:2}.timeline-row{grid-template-columns:72px minmax(0,1fr);gap:12px}.timeline-time{font-size:25px}.app-footer{padding:20px 18px;gap:8px}.dialog-actions button{flex:1;min-width:140px}}
@media(prefers-reduced-motion:no-preference){button,a,input,select,textarea{transition:background-color 150ms ease-out,border-color 150ms ease-out}}
@media print{body{background:white;color:#222}.app-shell,dialog,.notice,.example-banner{display:none!important}#print-schedule{display:block!important;padding:10mm;font:12pt Georgia,serif}#print-schedule h1{font:30pt Georgia,serif;margin-bottom:10mm}#print-schedule table{min-width:0;font:12pt Georgia,serif}#print-schedule td{padding:6mm 3mm;border-color:#bbb}#print-schedule td:first-child{width:30mm;font-weight:bold}#print-schedule p{font-size:11pt}#print-schedule tr{break-inside:avoid}@page{margin:12mm}}
.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}.checkbox-label{display:flex;align-items:center;gap:12px;align-self:center}.action-link{display:inline-flex;align-items:center;min-height:44px;padding:8px 0}
.postal-waves{width:178px;height:22px;color:var(--accent);opacity:.55;margin:20px 0 -22px}.row-actions button{min-height:44px;min-width:44px}.task-preview label,.checklist-row .task-title,.checkbox-label{min-height:44px}.checklist-row .task-title{display:flex;align-items:center}@media(max-width:740px){.postal-waves{display:none}}
.timeline-row .row-actions button{min-width:44px;min-height:44px}
