:root{--color-primary:#14d8db;--color-primary-active:#02b3d6;--color-primary-disabled:#cafafa;--color-primary-error-text:#1596bd;--color-primary-error-text-hover:#04b384;--color-luxe:#7a041f;--color-plus:#961d4d;--color-ink:#222;--color-body:#3f3f3f;--color-muted:#6a6a6a;--color-muted-soft:#929292;--color-hairline:#ddd;--color-hairline-soft:#ebebeb;--color-border-strong:#c1c1c1;--color-canvas:#fff;--color-surface-soft:#f7f7f7;--color-surface-card:#fff;--color-surface-strong:#f2f2f2;--color-on-primary:#fff;--color-on-dark:#fff;--color-legal-link:#23a4ca;--color-star-rating:#222;--color-scrim:#00000080;--rounded-none:0px;--rounded-xs:4px;--rounded-sm:8px;--rounded-md:14px;--rounded-lg:20px;--rounded-xl:32px;--rounded-full:9999px;--spacing-xxs:2px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-base:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-xxl:48px;--spacing-section:64px;--font-family:"Airbnb Cereal VF", Circular, -apple-system, system-ui, Roboto, "Helvetica Neue", sans-serif;--shadow-hover:#00000005 0 0 0 1px, #0000000a 0 2px 6px, #0000001a 0 4px 8px}[data-theme=dark]{--color-canvas:#1a1a1a;--color-surface-soft:#242424;--color-surface-card:#242424;--color-surface-strong:#2e2e2e;--color-ink:#f2f2f2;--color-body:#d1d1d1;--color-muted:#9a9a9a;--color-muted-soft:#7a7a7a;--color-hairline:#383838;--color-hairline-soft:#2e2e2e;--color-border-strong:#4a4a4a;--color-scrim:#000000bf;--shadow-hover:#0006 0 0 0 1px, #0000004d 0 2px 6px, #0006 0 4px 8px}[data-theme=dark] .form-input,[data-theme=dark] option{background-color:var(--color-surface-soft);color:var(--color-ink)}*{box-sizing:border-box;margin:0;padding:0}button{color:inherit}html{overscroll-behavior-y:none}body{font-family:var(--font-family);background-color:var(--color-canvas);color:var(--color-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:none}.text-display-lg{letter-spacing:-.44px;font-size:22px;font-weight:500;line-height:1.18}.text-title-md{font-size:16px;font-weight:600;line-height:1.25}.text-body-md{font-size:16px;font-weight:400;line-height:1.5}.text-body-sm{font-size:14px;font-weight:400;line-height:1.43}.text-caption{font-size:14px;font-weight:500;line-height:1.29}.text-muted{color:var(--color-muted)}.app-container{flex-direction:column;min-height:100vh;padding-bottom:80px;display:flex}.main-content{padding:var(--spacing-base);flex:1}.bottom-nav{background-color:var(--color-canvas);border-top:1px solid var(--color-hairline);z-index:100;height:70px;padding:0 var(--spacing-sm);padding-bottom:env(safe-area-inset-bottom);justify-content:space-between;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-group{flex:1;justify-content:space-around;height:100%;display:flex}.bottom-nav-item{cursor:pointer;color:var(--color-muted);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;transition:color .2s;display:flex}.bottom-nav-item.active{color:var(--color-primary)}.bottom-nav-item-home{background-color:var(--color-primary);width:64px;height:64px;color:var(--color-on-primary);border-radius:var(--rounded-full);border:4px solid var(--color-canvas);cursor:pointer;z-index:101;justify-content:center;align-items:center;transition:transform .2s,background-color .2s;display:flex;position:relative;top:-20px;box-shadow:0 4px 12px #14d8db66}.bottom-nav-item-home:active{background-color:var(--color-primary-active);transform:scale(.9)}.bottom-nav-icon{margin-bottom:var(--spacing-xxs);display:flex}.bottom-nav-icon-home{display:flex}.bottom-nav-label{font-size:10px;font-weight:500;line-height:1.2}.card{background-color:var(--color-canvas);border-radius:var(--rounded-md);box-shadow:var(--shadow-hover);padding:var(--spacing-base);margin-bottom:var(--spacing-base)}.btn-primary{background-color:var(--color-primary);color:var(--color-on-primary);border-radius:var(--rounded-sm);cursor:pointer;border:none;justify-content:center;align-items:center;width:100%;height:48px;padding:14px 24px;font-size:16px;font-weight:500;display:flex}.btn-primary:active{background-color:var(--color-primary-active)}.btn-secondary{background-color:var(--color-canvas);color:var(--color-ink);border:1px solid var(--color-ink);border-radius:var(--rounded-sm);cursor:pointer;justify-content:center;align-items:center;width:100%;height:48px;padding:13px 23px;font-size:16px;font-weight:500;display:flex}.icon-button-circle{background-color:var(--color-surface-strong);color:var(--color-ink);border-radius:var(--rounded-full);cursor:pointer;border:none;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.modal-overlay{background-color:var(--color-scrim);z-index:1000;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.modal-content{background-color:var(--color-canvas);border-radius:var(--rounded-lg) var(--rounded-lg) 0 0;padding:var(--spacing-lg);width:100%;max-width:560px;max-height:92dvh;box-shadow:var(--shadow-hover);position:relative;overflow-y:auto}.modal-header{margin-bottom:var(--spacing-base);justify-content:space-between;align-items:center;display:flex}.qr-placeholder{aspect-ratio:1;background-color:var(--color-surface-soft);border:1px solid var(--color-hairline);border-radius:var(--rounded-md);width:100%;margin-bottom:var(--spacing-base);color:var(--color-muted);justify-content:center;align-items:center;display:flex}.menu-grid{gap:var(--spacing-base);margin-top:var(--spacing-base);grid-template-columns:repeat(2,1fr);display:grid}.menu-card{background-color:var(--color-canvas);border-radius:var(--rounded-md);box-shadow:var(--shadow-hover);padding:var(--spacing-base);cursor:pointer;text-align:left;border:none;flex-direction:column;align-items:flex-start;transition:transform .1s,box-shadow .1s;display:flex}.menu-card:active{box-shadow:none;transform:scale(.98)}.schedule-container{gap:var(--spacing-lg);flex-direction:column;display:flex}.schedule-day-group{gap:var(--spacing-base);display:flex}.schedule-date-sidebar{width:50px;top:var(--spacing-md);flex-direction:column;align-items:center;height:fit-content;display:flex;position:sticky}.schedule-day-name{text-transform:uppercase;color:var(--color-muted);letter-spacing:.5px;font-size:11px;font-weight:700}.schedule-day-number{color:var(--color-ink);font-size:20px;font-weight:600}.schedule-day-number.today{background-color:var(--color-primary);color:#fff;border-radius:var(--rounded-full);justify-content:center;align-items:center;width:32px;height:32px;display:flex}.schedule-events{gap:var(--spacing-sm);flex-direction:column;flex:1;display:flex}.schedule-event-item{background-color:var(--color-canvas);border-radius:var(--rounded-md);padding:var(--spacing-md);border:1px solid var(--color-hairline-soft);box-shadow:var(--shadow-hover);justify-content:space-between;align-items:center;display:flex}.schedule-event-item.event{background-color:#14d8db14;border-color:#14d8db33}.schedule-event-item.birthday{background-color:#7a041f14;border-color:#7a041f33}.schedule-event-item.reminder{background-color:#04b38414;border-color:#04b38433}.schedule-event-item.trash{background-color:#bf730014;border-color:#bf730033}.schedule-month-divider{color:var(--color-primary);padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-hairline-soft);margin-top:var(--spacing-base);text-transform:uppercase;letter-spacing:1px;font-size:14px;font-weight:700}.event-card{padding:var(--spacing-base);margin-bottom:var(--spacing-sm);border-radius:var(--rounded-md);background-color:var(--color-canvas);box-shadow:var(--shadow-hover);border-left:3px solid var(--color-primary);justify-content:space-between;align-items:center;display:flex}.event-card.birthday{border-left-color:var(--color-primary-active)}.event-card-content{flex:1}.event-card-title{margin-bottom:2px;font-size:16px;font-weight:600}.event-card-time{color:var(--color-muted);font-size:14px}.form-group{margin-bottom:var(--spacing-base)}.form-label{margin-bottom:var(--spacing-xs);color:var(--color-ink);font-size:14px;font-weight:500;display:block}.auth-container{background-color:var(--color-surface-soft);min-height:100vh;padding:var(--spacing-base);justify-content:center;align-items:center;display:flex}.auth-card{background-color:var(--color-canvas);border-radius:var(--rounded-lg);box-shadow:var(--shadow-hover);padding:var(--spacing-xl);width:100%;max-width:400px}.auth-logo{margin-bottom:var(--spacing-sm);font-size:48px}.form-input{border-radius:var(--rounded-sm);border:1px solid var(--color-border-strong);width:100%;padding:12px 16px;font-family:inherit;font-size:16px;transition:border-color .2s}.form-input:focus{border-color:var(--color-ink);outline:none}.sticky-note{border-radius:var(--rounded-sm);color:#222;flex-direction:column;width:calc(50% - 4px);min-height:110px;display:flex;overflow:hidden;box-shadow:0 2px 6px #00000014,0 1px 2px #0000000d}.sticky-note-primary{background:#c8f9f9}.sticky-note-luxe{background:#fce4ea}.sticky-note-strip{flex-shrink:0;height:5px}.sticky-note-strip-primary{background:var(--color-primary)}.sticky-note-strip-luxe{background:var(--color-luxe)}.sticky-note-content{word-break:break-word;flex:1;padding:12px 14px 4px;font-size:15px;line-height:1.5}.sticky-note-footer{justify-content:space-between;align-items:center;padding:4px 8px 8px;display:flex}.sticky-note-meta{color:var(--color-muted-soft);font-size:11px;font-weight:500}.sticky-note-btn{cursor:pointer;color:var(--color-muted);opacity:.6;background:0 0;border:none;align-items:center;padding:4px 6px;display:flex}.sticky-note-btn:hover{opacity:1}.toast{background:var(--color-ink);color:#fff;border-radius:var(--rounded-full);z-index:999;white-space:nowrap;pointer-events:none;padding:10px 20px;font-size:14px;animation:.25s toast-in;position:fixed;bottom:90px;left:50%;transform:translate(-50%)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes slide-in-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.slide-in-up{animation:.35s cubic-bezier(.22,1,.36,1) slide-in-up}.auth-error{color:#c13515;padding:var(--spacing-sm);border-radius:var(--rounded-xs);margin-bottom:var(--spacing-base);background-color:#fff8f6;border:1px solid #f8d7da}
