:root{--bg:#f7f5ef;--paper:#fffdf8;--ink:#253428;--muted:#747c72;--line:#e6dfd2;--deep:#2f4b38;--soft:#e7eee4;--warm:#f2eee4;--danger:#8d3f35;--bottom-nav-height:84px;--capture-button-bottom-offset:12px;--capture-button-extra-footprint:56px;--modal-side-gap:8px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.app{display:flex;justify-content:center}.app,.shell{min-height:100vh}.shell{width:100%;max-width:540px;background:var(--paper);padding:28px 20px calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + var(--capture-button-bottom-offset) + var(--capture-button-extra-footprint));position:relative}.brand{color:var(--deep);font-weight:700;font-size:17px;margin-bottom:28px}h1{margin:0;font-size:31px;line-height:1.08;letter-spacing:-.04em}h2{font-size:20px;line-height:1.2;letter-spacing:-.03em;margin:0 0 14px}p{color:var(--muted);line-height:1.45}.section{margin-top:30px}.card,.choice,button,input,textarea{font-family:inherit}.card{border:1px solid var(--line);border-radius:24px;padding:17px;background:#fffbf4;margin-bottom:12px;cursor:pointer}.card-title{font-weight:700;font-size:17px;margin-bottom:5px}.card-subtitle{color:var(--muted);font-size:15px;line-height:1.4;white-space:pre-wrap}.choice{border:1px solid var(--line);border-radius:18px;padding:15px 16px;background:#fffbf4;cursor:pointer;margin-bottom:10px}.choice.selected{background:var(--soft)}input,textarea{width:100%;border:1px solid var(--line);background:#fffbf4;border-radius:22px;padding:17px;font-size:17px;outline:none;color:var(--ink)}textarea{min-height:150px;resize:vertical;line-height:1.45}.small{font-size:14px;color:var(--muted)}.notice{background:var(--soft);color:var(--deep)}.error,.notice{border-radius:18px;padding:12px 14px;margin-bottom:16px}.error{background:#f8e7e2;color:var(--danger)}.nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);max-width:540px;width:100%;background:rgba(255,253,248,.96);border-top:1px solid var(--line);padding:10px 14px calc(16px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-gap:8px;gap:8px;z-index:20}.nav button{border:none;background:transparent;color:var(--muted);font-size:11px;display:grid;place-items:center;grid-gap:3px;gap:3px;cursor:pointer}.nav button.active{color:var(--deep);font-weight:700}.plus{position:fixed;bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom));right:20px;width:56px;height:56px;border-radius:999px;border:none;background:var(--deep);color:#fff;font-size:34px;line-height:0;cursor:pointer;z-index:25}.sheet-backdrop{position:fixed;inset:0;background:rgba(37,52,40,.22);display:flex;justify-content:center;align-items:flex-end;padding:0 var(--modal-side-gap) calc(var(--bottom-nav-height) + env(safe-area-inset-bottom));z-index:1000}.sheet{position:relative;z-index:1001;width:100%;max-width:540px;background:var(--paper);border-radius:30px 30px 0 0;padding:18px 16px 0;display:flex;flex-direction:column;max-height:calc(100vh - env(safe-area-inset-top) - var(--bottom-nav-height) - env(safe-area-inset-bottom) - 16px);max-height:calc(100dvh - env(safe-area-inset-top) - var(--bottom-nav-height) - env(safe-area-inset-bottom) - 16px);overflow:hidden}.sheet-heading{margin:0;padding:6px 6px 12px}.sheet-content{flex:1 1;min-height:0;overflow-y:auto;padding:0 6px 12px;-webkit-overflow-scrolling:touch}.sheet-content textarea{min-height:220px}.actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.sheet-actions{position:-webkit-sticky;position:sticky;bottom:0;background:var(--paper);margin:0 -16px;padding:12px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}.primary,.secondary{border:1px solid var(--line);border-radius:18px;padding:13px 16px;font-size:15px;cursor:pointer}.primary{background:var(--deep);color:#fff}.secondary{background:var(--warm);color:var(--ink)}.message{border-radius:22px;padding:16px;background:#fffbf4;border:1px solid var(--line);margin-bottom:12px}.message.evergreen{background:var(--soft)}.finish{position:fixed;right:20px;top:20px;border:none;padding:9px 12px;cursor:pointer}.finish,.pill{background:var(--warm);border-radius:999px;color:var(--muted)}.pill{display:inline-block;padding:6px 10px;font-size:13px;margin-top:8px}.login{min-height:80vh;display:flex;flex-direction:column;justify-content:center}.linkButton{border:none;background:transparent;color:var(--deep);font-weight:700;padding:0;cursor:pointer}.sidebar,.sidebar-capture-button,.sidebar-finish-button{display:none}.content-frame,.home-extras{width:100%}.shell-brand{display:block}.capture-float{position:fixed;bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + var(--capture-button-bottom-offset));left:50%;transform:translateX(-50%);z-index:25;min-width:180px;border-radius:999px;border:1px solid #d6dccc;background:#edf3e7;color:var(--deep);font-weight:700;font-size:15px;padding:13px 16px;cursor:pointer;font-family:inherit}.nav button:focus-visible{outline:2px solid var(--deep);outline-offset:2px}@media (min-width:900px){.app{flex-direction:row;align-items:flex-start;justify-content:flex-start}.sidebar{display:flex;flex-direction:column;position:fixed;top:0;left:0;width:240px;height:100vh;background:var(--paper);border-right:1px solid var(--line);padding:24px 16px 20px;z-index:30;overflow-y:auto}.sidebar-brand{color:var(--deep);font-weight:700;font-size:17px;margin-bottom:28px;flex-shrink:0}.sidebar nav{display:flex;flex-direction:column;gap:4px;flex:1 1}.sidebar-nav-button{display:flex;align-items:center;gap:10px;width:100%;border:none;background:transparent;color:var(--muted);font-size:15px;padding:10px 12px;border-radius:12px;cursor:pointer;text-align:left;font-family:inherit}.sidebar-nav-button:hover{background:var(--soft);color:var(--ink)}.sidebar-nav-button.active{background:var(--soft);color:var(--deep);font-weight:700}.sidebar-nav-button:focus-visible{outline:2px solid var(--deep);outline-offset:2px}.sidebar-capture-button{display:block;margin-top:16px;width:100%;background:var(--deep);color:#fff;border:none;border-radius:18px;padding:13px 16px;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;text-align:center;flex-shrink:0}.sidebar-capture-button:hover{opacity:.9}.sidebar-capture-button:focus-visible{outline:2px solid var(--deep);outline-offset:2px}.sidebar-finish-button{display:block;margin-top:auto;padding-top:20px;background:transparent;border:none;color:var(--muted);font-size:14px;font-family:inherit;cursor:pointer;text-align:left;flex-shrink:0}.sidebar-finish-button:hover{color:var(--ink)}.sidebar-finish-button:focus-visible{outline:2px solid var(--deep);outline-offset:2px}.shell{margin-left:240px;max-width:none;width:calc(100% - 240px);padding-bottom:40px;min-height:100vh}.content-frame{max-width:680px;margin-left:0;margin-right:auto}.content-frame--wide{max-width:1200px}.content-frame--people{max-width:1360px}.capture-float,.finish,.nav,.shell-brand{display:none}}.people-workspace{display:block}.people-detail-panel,.people-list-panel{min-width:0}.people-list-card{padding:18px}.people-list-status{margin-top:12px}.people-list-count{margin-top:8px}.people-list-results{margin-top:16px;display:grid;grid-gap:10px;gap:10px}.people-list-button{width:100%;min-width:0;text-align:left;white-space:normal;overflow-wrap:anywhere}.people-list-empty{margin-top:12px}.people-detail-panel{margin-top:20px;min-width:0}.people-detail-placeholder{display:none}@media (min-width:1024px){.people-workspace{display:grid;grid-template-columns:clamp(280px,30%,360px) minmax(0,1fr);grid-column-gap:clamp(24px,2.2vw,32px);column-gap:clamp(24px,2.2vw,32px);align-items:start}.people-detail-panel{margin-top:0}.people-detail-placeholder{display:block}.people-back-control{display:none}.people-detail-panel .linkButton{display:none!important}.desktop-two-col{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);grid-gap:30px 32px;gap:30px 32px;align-items:start}.desktop-two-col>.section{margin-top:0}.desktop-col-primary{grid-column:1}.desktop-col-secondary{grid-column:2}.desktop-row-1{grid-row:1}.desktop-row-2{grid-row:2}.desktop-row-3{grid-row:3}.desktop-row-4{grid-row:4}.desktop-row-5{grid-row:5}.home-extras{max-width:680px}}.campaign-editor-save-bar{position:-webkit-sticky;position:sticky;top:8px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px;padding:12px 14px;border:1px solid #cad8c7;border-radius:20px;background:linear-gradient(135deg,#f7fbf5,#eef5eb);box-shadow:0 10px 28px rgba(47,75,56,.14)}.campaign-editor-save-bar strong{display:block;color:var(--deep);font-size:15px}.campaign-editor-save-bar .small{margin-top:2px}.campaign-editor-save-bar button{flex:0 0 auto}@media (min-width:900px){.campaign-editor-save-bar{top:16px;padding:14px 18px}}.bookings-calendar{--fc-border-color:var(--line);--fc-button-bg-color:var(--deep);--fc-button-border-color:var(--deep);--fc-button-hover-bg-color:var(--ink);--fc-button-hover-border-color:var(--ink);--fc-button-active-bg-color:var(--ink);--fc-button-active-border-color:var(--ink);--fc-today-bg-color:var(--soft)}.bookings-calendar .fc{font-family:inherit}.bookings-calendar .fc .fc-toolbar{gap:10px;flex-wrap:wrap}.bookings-calendar .fc .fc-toolbar-title{font-size:clamp(1.05rem,4vw,1.4rem)}.bookings-calendar .fc .fc-button{font-family:inherit}@media (max-width:640px){.bookings-calendar .fc .fc-toolbar{align-items:flex-start}.bookings-calendar .fc .fc-toolbar-chunk:nth-child(2){order:-1;width:100%}.bookings-calendar .fc .fc-toolbar-title{text-align:left}.bookings-calendar .fc .fc-button{padding:.35em .5em;font-size:.82rem}}.booking-register{border:1px solid var(--line);border-radius:24px;padding:18px;background:#fffbf4}.booking-register h2{margin-bottom:10px}.booking-register-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.booking-register-heading .pill{margin-top:0;white-space:nowrap}.booking-register-list{display:grid;grid-gap:10px;gap:10px;margin-top:16px}.booking-register-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.booking-register-row strong{min-width:0;overflow-wrap:anywhere}.booking-register-row .pill{margin-top:0;flex:0 0 auto}.booking-register-person{display:grid;grid-gap:3px;gap:3px;min-width:0}.booking-register-person .small{display:block}.booking-register-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.booking-register-actions .secondary{padding:8px 10px;font-size:14px}.booking-register-actions button:disabled{opacity:.55;cursor:wait}.bookings-calendar .fc-event{cursor:pointer}@media (max-width:640px){.booking-register{padding:16px}.booking-register-heading,.booking-register-row{align-items:flex-start}}@media (min-width:1024px){.people-list-panel{position:-webkit-sticky;position:sticky;top:28px;align-self:start;max-height:calc(100vh - 56px);max-height:calc(100dvh - 56px);min-height:0}.people-list-card{display:flex;flex-direction:column;max-height:inherit;margin-bottom:0;cursor:default;overflow:hidden}.people-list-results{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:4px;-webkit-overflow-scrolling:touch}}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@media (max-width:640px){.campaign-editor-save-bar{gap:10px;padding:10px 12px}.campaign-editor-save-bar>div{min-width:0}.campaign-editor-save-bar button{min-width:92px;white-space:nowrap}}