html{background:#fffffa}body{overscroll-behavior-y:none}:root{color:#172017;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fffffa;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;touch-action:manipulation;background:#fffffa;width:100%;height:100%;min-height:100%;margin:0;overflow:hidden}body{-webkit-text-size-adjust:100%;width:100%;min-height:100vh;position:fixed;inset:0}button,input,select,textarea{font:inherit}input,select,textarea{font-size:16px!important}.app-shell{width:100%;height:100dvh;max-height:100dvh;padding:max(24px, env(safe-area-inset-top)) 20px max(112px, env(safe-area-inset-bottom));background:radial-gradient(circle at 0 0,#638b5c38,#0000 34%),radial-gradient(circle at 100% 100%,#2444291f,#0000 38%),#fffffa;flex-direction:column;display:flex;position:relative;overflow:hidden}.app-header{z-index:10;flex-direction:column;flex:none;gap:18px;padding:8px 0 14px;display:flex;position:relative}.app-eyebrow{color:#244429;letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:1rem;font-weight:900}.category-filter-wrap{width:fit-content;max-width:100%;display:inline-flex;position:relative}.category-native-select{z-index:2;opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.category-filter-display{color:#244429;letter-spacing:-.02em;align-items:center;gap:7px;max-width:100%;font-size:1rem;font-weight:850;display:inline-flex}.category-filter-display span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.categories-error,.form-error{margin:0;font-weight:800;color:#9f2d20!important;font-size:.94rem!important}.categories-error{margin-top:-8px;font-size:.9rem!important}.empty-state{text-align:center;box-shadow:none;background:0 0;border:0;border-radius:0;flex-direction:column;flex:auto;justify-content:center;align-items:center;padding:24px 6px;display:flex;overflow:hidden;min-height:0!important}.empty-state h1{color:#172017;letter-spacing:-.07em;margin:0 0 12px;font-size:clamp(2rem,11vw,3.4rem);line-height:.95}.empty-state p{color:#667160;max-width:310px;margin:0;font-size:1.05rem;line-height:1.42}.floating-add-button{right:max(18px, env(safe-area-inset-right));bottom:max(18px, env(safe-area-inset-bottom));color:#fffffa;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#244429;border:0;border-radius:999px;place-items:center;width:50px;height:50px;display:grid;position:fixed;box-shadow:0 12px 30px #24442947}.floating-add-button svg{width:24px;height:24px}.floating-add-button:active{transform:scale(.96)}.login-shell{flex-direction:column;display:flex}.login-panel{flex-direction:column;justify-content:center;min-height:calc(100dvh - 120px);padding:18px 0 40px;display:flex}.login-panel h1{color:#172017;letter-spacing:-.08em;max-width:330px;margin:0 0 12px;font-size:clamp(2.3rem,12vw,4rem);line-height:.9}.login-panel p{color:#667160;max-width:310px;margin:0;font-size:1.05rem;line-height:1.42}.login-form{flex-direction:column;gap:12px;margin-top:34px;display:flex}.login-form label,.field-group span{color:#244429;letter-spacing:.06em;text-transform:uppercase;font-size:.84rem;font-weight:900}.field-group span{letter-spacing:.08em;font-size:.78rem}.login-form input,.field-group input,.field-group select{color:#172017;appearance:none;background:#fffffaeb;border:1px solid #24442929;border-radius:22px;outline:none;width:100%;min-height:58px;padding:0 18px;font-size:1rem;font-weight:800;box-shadow:0 12px 34px #1f2a220f}.login-form input{background:#fffffabd;border-color:#2444292e;min-height:62px;font-size:1.1rem;box-shadow:0 16px 40px #1f2a2212}.login-form input:focus{border-color:#2444296b;box-shadow:0 18px 44px #1f2a221a}.field-group{flex-direction:column;gap:8px;display:flex}.field-group select option{color:#172017;background:#fffffa}.field-group select:disabled{opacity:.72}.primary-button{color:#fffffa;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#244429;border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:64px;margin-top:8px;font-size:1rem;font-weight:900;display:inline-flex;box-shadow:0 18px 42px #24442947}.primary-button:disabled{cursor:wait;opacity:.76}.spin-icon{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.items-list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;flex:auto;gap:10px;min-height:0;padding:14px 0 92px;display:flex;overflow:hidden auto}.item-card{touch-action:pan-y;will-change:transform;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background:#fffffa94;border-radius:22px;grid-template-columns:68px 1fr;gap:12px;min-height:84px;padding:8px;transition:transform .18s,background .18s,opacity .18s,box-shadow .18s;display:grid;position:relative;overflow:hidden;box-shadow:0 10px 28px #1f2a220f}.item-card *{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.item-card.is-inactive{opacity:.52}.item-card.is-swiping{transition:background .12s,box-shadow .12s;box-shadow:0 18px 52px #1f2a2224!important}.item-card.swipe-active-preview{background:#24442929!important}.item-card.swipe-inactive-preview{background:#6f80682e!important}.item-card.is-long-pressing{outline:2px solid #9f2d2038;transform:scale(.985);box-shadow:0 16px 46px #9f2d202e!important}.item-photo,.item-content,.item-status-pill{z-index:1;position:relative}.item-photo{color:#6f8068;text-transform:uppercase;background:#24442914;border-radius:17px;place-items:center;width:68px;height:68px;font-size:.65rem;font-weight:900;display:grid;overflow:hidden}.item-photo img{object-fit:cover;width:100%;height:100%}.item-content{align-self:center;min-width:0}.item-category{color:#6f8068;letter-spacing:.07em;text-transform:uppercase;margin:0 0 3px;font-size:.64rem;font-weight:900}.item-content h2{color:#172017;letter-spacing:-.035em;margin:0 0 4px;font-size:1.02rem;line-height:1.05}.item-price{color:#244429;margin:0;font-size:.96rem;font-weight:950}.item-status-pill{color:#fffffa;text-transform:uppercase;border-radius:999px;padding:4px 8px;font-size:.58rem;font-weight:950;transition:background .18s,transform .18s;position:absolute;top:9px;right:9px}.item-status-pill.is-active{background:#244429}.item-status-pill.is-inactive{background:#6f8068}.item-card.is-swiping .item-status-pill{transform:scale(.94)}.article-form-overlay{z-index:20;background:#17201738;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.article-form-sheet{width:100%;max-height:92dvh;padding:10px 20px max(24px, env(safe-area-inset-bottom));background:#fffffa;border-radius:32px 32px 0 0;overflow-y:auto;box-shadow:0 -20px 70px #17201738}.sheet-handle{background:#2444292e;border-radius:999px;width:46px;height:5px;margin:0 auto 18px}.article-form-header{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px;display:flex}.form-eyebrow{color:#6f8068;letter-spacing:.11em;text-transform:uppercase;margin:0 0 5px;font-size:.99rem;font-weight:900}.article-form-header h2{color:#172017;letter-spacing:-.07em;margin:0;font-size:2rem;line-height:.95}.sheet-close-button{color:#244429;cursor:pointer;appearance:none;background:#24442914;border:0;border-radius:999px;flex:none;place-items:center;width:46px;height:46px;display:grid}.article-form{flex-direction:column;gap:16px;display:flex}.photo-picker{aspect-ratio:1;color:#244429;text-align:center;appearance:none;-webkit-tap-highlight-color:transparent;background:#2444290f;border:1px dashed #24442952;border-radius:30px;outline:none;place-items:center;min-height:0;font-weight:900;display:grid;position:relative;overflow:hidden}.photo-picker span{flex-direction:column;align-items:center;gap:10px;display:flex}.photo-picker img{object-fit:cover;transform-origin:50%;will-change:transform;width:100%;max-width:none;height:100%;max-height:none;transition:none!important}.photo-picker input[type=file]{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;opacity:0!important;pointer-events:none!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.photo-picker.is-empty{cursor:pointer;touch-action:manipulation}.photo-picker.is-draggable{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;overscroll-behavior:contain}.photo-picker.is-draggable *{touch-action:none}.photo-picker.is-draggable img{pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.photo-picker.is-dragging{cursor:grabbing;border-color:#24442994;box-shadow:0 16px 44px #1f2a221f}.photo-change-button{z-index:5;color:#1f2a18;cursor:pointer;white-space:nowrap;touch-action:manipulation;pointer-events:auto;background:#fffffff0;border:0;border-radius:999px;padding:9px 14px;font-size:12px;font-weight:700;position:absolute;bottom:42px;left:50%;transform:translate(-50%);box-shadow:0 8px 18px #00000029}.photo-change-button:active{transform:translate(-50%)scale(.96)}.photo-drag-hint{z-index:2;color:#fffffa;letter-spacing:.02em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#17201794;border-radius:999px;width:max-content;max-width:calc(100% - 28px);padding:7px 11px;font-size:.72rem;font-weight:900;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.article-form-overlay{z-index:40;align-items:flex-end}.article-form-sheet{max-height:calc(100dvh - 80px);padding:8px 16px max(16px, env(safe-area-inset-bottom));border-radius:28px 28px 0 0;overflow-y:auto}.sheet-handle{width:40px;height:4px;margin-bottom:10px}.article-form-header{margin-bottom:12px}.form-eyebrow{margin-bottom:2px;font-size:.68rem}.article-form-header h2{letter-spacing:-.05em;font-size:1.45rem}.sheet-close-button{width:38px;height:38px}.article-form{grid-template-rows:auto auto auto;grid-template-columns:130px 1fr;align-items:start;gap:10px;display:grid}.article-form>.photo-picker{aspect-ratio:1;border-radius:20px;grid-area:1/1/2;place-self:start;width:130px;height:130px}.article-form>.form-fields{flex-direction:column;grid-area:1/2;gap:8px;min-width:0;display:flex}.article-form>.form-error,.article-form>.primary-button{grid-column:1/-1}.photo-drag-hint{padding:5px 8px;font-size:.62rem;bottom:7px}.field-group{gap:4px}.field-group span{font-size:.67rem}.field-group input,.field-group select{border-radius:16px;min-height:44px;padding:0 12px;font-size:.92rem!important}.field-textarea{resize:none;color:#172017;background:#2444290a;border:1.5px solid #2444292e;border-radius:16px;outline:none;width:100%;min-height:64px;padding:10px 12px;font-family:inherit;font-size:.92rem;line-height:1.45}.field-textarea:focus{background:#fffffa;border-color:#244429}.primary-button{min-height:50px;margin-top:2px;font-size:.95rem}.photo-picker-button{cursor:pointer;border-style:dashed;width:100%}button.photo-picker{appearance:none;padding:0}.hidden-photo-input{opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;position:fixed!important;top:-9999px!important;left:-9999px!important}.photo-choice-panel{grid-template-columns:1fr 1fr;gap:10px;margin-top:-4px;display:grid}.photo-choice-panel button{color:#244429;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#24442914;border:0;border-radius:999px;min-height:48px;font-size:.86rem;font-weight:950}.photo-choice-panel .photo-choice-cancel{color:#6f8068;background:0 0;grid-column:1/-1;min-height:42px}.change-photo-button{color:#244429;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#24442914;border:0;border-radius:999px;min-height:42px;margin-top:-4px;font-size:.86rem;font-weight:950}.change-photo-button:active{transform:scale(.98)}.push-button{color:#244429;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#24442914;border:0;border-radius:999px;justify-content:center;align-items:center;gap:7px;width:fit-content;min-height:36px;padding:0 12px;font-size:.82rem;font-weight:950;display:inline-flex}.push-status{color:#244429;margin:-8px 0 0;font-size:.82rem;font-weight:850}.app-header{position:relative}.push-button{z-index:20;color:#fffffa;cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:0 10px;font-size:.76rem;font-weight:950;display:inline-flex;position:absolute;top:4px;right:0}.push-button.is-enabled{background:#244429;box-shadow:0 10px 26px #24442938}.push-button.is-disabled{background:#9f2d20;box-shadow:0 10px 26px #9f2d202e}.push-button.is-neutral{color:#244429;box-shadow:none;background:#24442924}.push-button:disabled{opacity:.74;cursor:wait}.push-status{margin:-8px 0 0;padding-right:120px}.page-subtitle{color:#244429;letter-spacing:-.02em;margin:0;font-size:1rem;font-weight:850}.bottom-nav{left:16px;right:16px;bottom:max(14px, env(safe-area-inset-bottom));z-index:30;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffae0;border:1px solid #2444291a;border-radius:999px;grid-template-columns:1fr 1fr;gap:8px;padding:7px;display:grid;position:fixed;box-shadow:0 18px 48px #1f2a2224}.bottom-nav button{color:#6f8068;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-height:42px;font-size:.82rem;font-weight:950;display:inline-flex}.bottom-nav button.is-active{color:#fffffa;background:#244429;box-shadow:0 10px 26px #24442938}.floating-add-button{bottom:calc(max(14px, env(safe-area-inset-bottom)) + 68px)!important}.items-list,.reservations-list{padding-bottom:130px!important}.pull-refresh-indicator{color:#244429;justify-content:center;align-items:center;padding:6px 0 2px;transition:opacity .15s;display:flex}.reservations-list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;flex:auto;gap:10px;min-height:0;padding:14px 0 130px;display:flex;overflow:hidden auto}.reservation-card{background:#fffffa9e;border-radius:22px;grid-template-columns:1fr auto;align-items:center;gap:14px;min-height:86px;padding:12px 14px;display:grid;box-shadow:0 10px 28px #1f2a220f}.reservation-ref{color:#6f8068;letter-spacing:.08em;text-transform:uppercase;margin:0 0 5px;font-size:.66rem;font-weight:950}.reservation-card h2{color:#172017;letter-spacing:-.035em;margin:0 0 5px;font-size:1.05rem;line-height:1.05}.reservation-date{color:#667160;margin:0;font-size:.78rem;font-weight:800}.reservation-side{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.reservation-side span{color:#244429;font-size:1rem;font-weight:950}.reservation-side small{color:#fffffa;text-transform:uppercase;background:#6f8068;border-radius:999px;padding:4px 7px;font-size:.58rem;font-weight:950}.reservation-card{text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;width:100%}.reservation-card:active{transform:scale(.99)}.reservation-status.is-honoree{background:#244429}.reservation-status.is-annulee{background:#9f2d20}.reservation-detail-overlay{z-index:40;background:#1720173d;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.reservation-detail-sheet{width:100%;max-height:92dvh;padding:10px 20px max(24px, env(safe-area-inset-bottom));background:#fffffa;border-radius:32px 32px 0 0;overflow-y:auto;box-shadow:0 -20px 70px #17201738}.reservation-detail-header{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.reservation-detail-header h2{color:#172017;letter-spacing:-.06em;margin:0 0 6px;font-size:1.75rem;line-height:.95}.reservation-detail-summary{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;display:grid}.reservation-detail-summary div{background:#24442912;border-radius:20px;padding:12px}.reservation-detail-summary span{color:#6f8068;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;font-size:.68rem;font-weight:950;display:block}.reservation-detail-summary strong{color:#244429;text-transform:uppercase;font-size:1rem;font-weight:950}.reservation-detail-contact{flex-direction:column;gap:8px;margin-bottom:18px;display:flex}.reservation-detail-contact a{color:#244429;font-size:.95rem;font-weight:850;text-decoration:none}.reservation-articles-block h3{color:#172017;letter-spacing:-.03em;margin:0 0 10px;font-size:1.05rem;font-weight:950}.reservation-empty-articles{color:#667160;margin:0;font-size:.95rem;font-weight:750}.reservation-articles-list{flex-direction:column;gap:8px;display:flex}.reservation-article-row{background:#2444290f;border-radius:18px;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.reservation-article-row strong{color:#172017;font-size:.95rem;font-weight:950;display:block}.reservation-article-row span{color:#6f8068;margin-top:3px;font-size:.74rem;font-weight:850;display:block}.reservation-article-row p{color:#244429;white-space:nowrap;margin:0;font-size:.9rem;font-weight:950}.reservation-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;display:grid}.reservation-actions button{color:#fffffa;cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;border-radius:999px;min-height:52px;font-size:.95rem;font-weight:950}.reservation-actions button:disabled{opacity:.72;cursor:wait}.honored-button{background:#244429}.cancelled-button{background:#9f2d20}
