:root{--c-base-0: #FAF7F4;--c-base-1: #F6F2EF;--c-base-2: #EFE8E3;--c-base-3: #E5DDD6;--c-rose-faint: #F9F0EE;--c-rose-light: #F0DDD9;--c-rose: #D4A5A5;--c-rose-mid: #C48E8E;--c-rose-deep: #B07272;--c-sage-faint: #EEF1EC;--c-sage-light: #D6DED5;--c-sage: #8A9E8C;--c-sage-deep: #6B7D6C;--c-lavender-faint: #F2EFF6;--c-lavender-light: #E2DAF0;--c-lavender: #C4B8D4;--c-gold: #C9A96E;--c-gold-light: #DEC898;--c-gold-faint: #F0E8D6;--c-text-900: #2E2520;--c-text-700: #5C4E47;--c-text-500: #8C7E78;--c-text-300: #B8AEA9;--c-text-100: #D8D2CE;--c-bg: var(--c-base-0);--c-surface: var(--c-base-1);--c-surface-raised: #FFFFFF;--c-border: rgba(62, 50, 44, .09);--c-border-light: rgba(62, 50, 44, .05);--font-display: "Playfair Display", "Georgia", serif;--font-editorial: "Cormorant Garamond", "Georgia", serif;--font-ui: "Inter", -apple-system, sans-serif;--text-xs: 11px;--text-sm: 13px;--text-base: 15px;--text-md: 17px;--text-lg: 20px;--text-xl: 24px;--text-2xl: 30px;--text-3xl: 38px;--leading-tight: 1.2;--leading-snug: 1.35;--leading-base: 1.5;--leading-loose: 1.7;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--s-16: 64px;--r-xs: 6px;--r-sm: 10px;--r-md: 16px;--r-lg: 20px;--r-xl: 28px;--r-2xl: 36px;--r-full: 999px;--shadow-xs: 0 1px 2px rgba(62, 50, 44, .05);--shadow-sm: 0 2px 8px rgba(62, 50, 44, .07);--shadow-md: 0 4px 16px rgba(62, 50, 44, .08);--shadow-lg: 0 8px 32px rgba(62, 50, 44, .1);--nav-height: 68px;--safe-bottom: env(safe-area-inset-bottom, 12px);--page-pad-x: 20px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{height:100%;height:-webkit-fill-available}body{height:100%;height:-webkit-fill-available;background:var(--c-bg);color:var(--c-text-900);font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--leading-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;position:fixed;width:100%}#root{height:100%;display:flex;flex-direction:column}.app-shell{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--c-bg)}.page-content{flex:1;overflow-y:scroll;overflow-x:hidden;padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + 20px);-webkit-overflow-scrolling:touch}.page-content::-webkit-scrollbar{display:none}.text-display{font-family:var(--font-display);font-weight:500;line-height:var(--leading-tight)}.text-editorial{font-family:var(--font-editorial);font-weight:400;line-height:var(--leading-snug)}.text-ui{font-family:var(--font-ui);line-height:var(--leading-base)}.section-header{display:flex;align-items:baseline;justify-content:space-between;padding:0 var(--page-pad-x);margin-bottom:var(--s-4)}.section-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;color:var(--c-text-900);letter-spacing:-.01em}.section-link{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:400;color:var(--c-text-500);text-decoration:none;cursor:pointer;background:none;border:none;padding:0}.card{background:var(--c-surface-raised);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-inset{background:var(--c-base-1);border:1px solid var(--c-border-light);border-radius:var(--r-md)}.pill{display:inline-flex;align-items:center;gap:var(--s-1);padding:3px 10px;border-radius:var(--r-full);font-family:var(--font-ui);font-size:var(--text-xs);font-weight:500;letter-spacing:.01em}.pill-rose{background:var(--c-rose-faint);color:var(--c-rose-deep)}.pill-sage{background:var(--c-sage-faint);color:var(--c-sage-deep)}.pill-gold{background:var(--c-gold-faint);color:var(--c-gold)}.pill-lavender{background:var(--c-lavender-faint);color:#7b6fa0}.divider{height:1px;background:var(--c-border);margin:0 var(--page-pad-x)}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--s-3);padding:var(--s-10) var(--page-pad-x);text-align:center}.empty-state-icon{width:40px;height:40px;color:var(--c-text-100)}.empty-state-text{font-family:var(--font-editorial);font-size:var(--text-md);color:var(--c-text-300);font-style:italic}.loading-shimmer{background:linear-gradient(90deg,var(--c-base-2) 25%,var(--c-base-1) 50%,var(--c-base-2) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--r-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2e252066;z-index:200;display:flex;align-items:flex-end;animation:fadeIn .2s ease}.sheet{width:100%;background:var(--c-base-0);border-radius:var(--r-2xl) var(--r-2xl) 0 0;padding:var(--s-2) var(--page-pad-x) 0;padding-bottom:calc(var(--safe-bottom) + var(--s-6));animation:slideUp .3s cubic-bezier(.32,.72,0,1);max-height:85vh;overflow-y:auto}.sheet-handle{width:36px;height:4px;background:var(--c-base-3);border-radius:var(--r-full);margin:var(--s-2) auto var(--s-5)}.sheet-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;color:var(--c-text-900);margin-bottom:var(--s-5)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.input-field{width:100%;padding:var(--s-4) var(--s-4);background:var(--c-base-1);border:1px solid var(--c-border);border-radius:var(--r-md);font-family:var(--font-ui);font-size:var(--text-md);color:var(--c-text-900);outline:none;transition:border-color .15s;-webkit-appearance:none}.input-field:focus{border-color:var(--c-rose)}.input-label{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:500;color:var(--c-text-500);display:block;margin-bottom:var(--s-2);letter-spacing:.02em;text-transform:uppercase}.btn-primary{width:100%;padding:var(--s-4);background:var(--c-text-900);color:var(--c-base-0);border:none;border-radius:var(--r-full);font-family:var(--font-ui);font-size:var(--text-base);font-weight:500;cursor:pointer;transition:opacity .15s,transform .1s;letter-spacing:.01em}.btn-primary:active{opacity:.85;transform:scale(.98)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{background:none;border:none;color:var(--c-text-500);font-family:var(--font-ui);font-size:var(--text-sm);cursor:pointer;padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);transition:background .1s}.btn-ghost:active{background:var(--c-base-2)}.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}
