:root{--lavender: #D4C5E2;--lavender-deep: #B8A5CC;--lavender-light: #EDE6F4;--sage: #B5C9B3;--sage-deep: #8FB08A;--sage-dark: #5A7A56;--tan: #E8D5B7;--tan-deep: #D4BC94;--tan-dark: #A68B5B;--rose: #E8B4B8;--rose-deep: #D4949A;--mint: #B8D8D0;--mint-deep: #8FC4B8;--butter: #F0E6B8;--butter-deep: #E0D48A;--parchment: #FAF5EB;--parchment-dark: #EDE4D0;--charcoal: #3A3A3A;--charcoal-light: #5A5A5A;--ember: #F4A460;--ember-bright: #FF8C42;--flame: #E85D3A;--flame-glow: rgba(244, 164, 96, .3);--night-sky: #2C2444;--night-mid: #3D3560;--twilight: #5C4F7A;--starlight: #FFF8E7;--font-display: "Cinzel Decorative", serif;--font-heading: "Fredericka the Great", serif;--font-body: "Lora", serif;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2.5rem;--space-2xl: 4rem;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 20px;--radius-xl: 30px;--shadow-soft: 0 4px 20px rgba(0, 0, 0, .08);--shadow-medium: 0 8px 32px rgba(0, 0, 0, .12);--shadow-glow: 0 0 30px var(--flame-glow)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow-x:hidden}body{font-family:var(--font-body);color:var(--charcoal);background:var(--night-sky);-webkit-font-smoothing:antialiased}button{font-family:var(--font-body);cursor:pointer;border:none;outline:none}input{font-family:var(--font-body);outline:none}a{text-decoration:none;color:inherit}@keyframes float-up{0%{transform:translateY(0) translate(0) scale(1);opacity:0}10%{opacity:1}90%{opacity:.8}to{transform:translateY(-100vh) translate(30px) scale(.5);opacity:0}}@keyframes float-leaf{0%{transform:translateY(0) translate(0) rotate(0);opacity:0}10%{opacity:.7}50%{transform:translateY(-40vh) translate(60px) rotate(180deg);opacity:.5}to{transform:translateY(-90vh) translate(-20px) rotate(360deg);opacity:0}}@keyframes twinkle{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}@keyframes gentle-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes sway{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse-glow{0%,to{filter:drop-shadow(0 0 8px rgba(244,164,96,.3))}50%{filter:drop-shadow(0 0 20px rgba(244,164,96,.6))}}@keyframes flicker{0%,to{opacity:1;transform:scaleY(1) scaleX(1)}25%{opacity:.9;transform:scaleY(1.02) scaleX(.98)}50%{opacity:1;transform:scaleY(.98) scaleX(1.02)}75%{opacity:.95;transform:scaleY(1.01) scaleX(.99)}}@keyframes ember-rise{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(-60px) scale(.3);opacity:0}}@keyframes smoke-rise{0%{transform:translateY(0) scaleX(1);opacity:.4}50%{transform:translateY(-40px) scaleX(1.5);opacity:.2}to{transform:translateY(-80px) scaleX(2);opacity:0}}@keyframes slide-in-bottom{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes page-enter{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes ripple{0%{transform:scale(0);opacity:.5}to{transform:scale(4);opacity:0}}@keyframes hover-bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}@keyframes campfire-dance{0%{transform:scaleY(1) scaleX(1) rotate(0)}20%{transform:scaleY(1.08) scaleX(.95) rotate(-1deg)}40%{transform:scaleY(.95) scaleX(1.05) rotate(1deg)}60%{transform:scaleY(1.05) scaleX(.97) rotate(-.5deg)}80%{transform:scaleY(.97) scaleX(1.03) rotate(.5deg)}to{transform:scaleY(1) scaleX(1) rotate(0)}}.sidenav-toggle{position:fixed;top:10px;left:16px;z-index:1100;display:flex;flex-direction:column;gap:4px;padding:8px;background:#1e192899;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,248,231,.12);border-radius:var(--radius-md);cursor:pointer;transition:opacity .15s ease .25s,background .2s ease,border-color .2s ease}.sidenav-toggle:hover{background:#1e1928cc;border-color:#fff8e740}.sidenav-toggle--hidden{opacity:0;pointer-events:none;transition:opacity 0s}.sidenav-toggle__bar{display:block;width:18px;height:2px;background:var(--lavender-light);border-radius:1px;transition:all .25s ease;transform-origin:center}.sidenav{position:fixed;top:0;left:0;z-index:1080;width:240px;height:100vh;background:#1e1928f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-right:1px solid rgba(255,248,231,.08);transform:translate(-100%);transition:transform .25s ease;padding:0;display:flex;flex-direction:column}.sidenav--open{transform:translate(0)}.sidenav__header{display:flex;align-items:center;justify-content:space-between;padding:14px 25px;border-bottom:1px solid rgba(255,248,231,.06);margin-bottom:var(--space-md)}.sidenav__brand{display:flex;align-items:center;gap:var(--space-sm);font-family:var(--font-display);font-size:1.1rem;color:var(--parchment)}.sidenav__close{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--lavender-light);cursor:pointer;padding:4px;border-radius:var(--radius-sm);opacity:.6;transition:all .2s ease}.sidenav__close:hover{opacity:1;background:#ffffff14}.sidenav__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.sidenav__item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:10px var(--space-lg);font-family:var(--font-body);font-size:.88rem;color:var(--lavender-light);background:none;border:none;cursor:pointer;text-align:left;transition:all .15s ease;border-left:3px solid transparent}.sidenav__item:hover{background:#ffffff0d;color:var(--parchment)}.sidenav__item--active{color:var(--parchment);background:#ffffff12;border-left-color:var(--ember)}.sidenav__item--nested{padding-left:calc(var(--space-lg) + 26px);font-size:.84rem}.sidenav__icon{flex-shrink:0;opacity:.7}.sidenav__group{display:flex;flex-direction:column}.sidenav__group-label{display:flex;align-items:center;gap:var(--space-sm);padding:10px var(--space-lg);font-family:var(--font-body);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--lavender-light);opacity:.5;border-left:3px solid transparent}.sidenav__group--active .sidenav__group-label{opacity:.7}.sidenav__sublist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.parallax-bg{position:fixed;inset:0;z-index:0;overflow:hidden;--mouse-x: 0;--mouse-y: 0}.parallax-bg--night{background:linear-gradient(180deg,#1a1333 0%,var(--night-sky) 30%,var(--night-mid) 60%,var(--twilight) 100%)}.parallax-bg--dusk{background:linear-gradient(180deg,#3D3560 0%,#5C4F7A 20%,#8B7BAA 40%,#C4A882 65%,#E8C9A0 85%,var(--tan) 100%)}.parallax-bg--campsite{background:#0a0a06;transition:background 1s ease;--campsite-sky-bg: #1A2030}.parallax-bg--campsite.campsite--day{background:#87ceeb;--campsite-sky-bg: #87CEEB}.campsite-darkness{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 25%,#1a2030,#0e1218 30%,#080a0c 50%,#040402);transition:opacity 1s ease}.campsite--day .campsite-darkness{background:none}.campsite-sky-sliver{position:absolute;top:0;left:20%;width:60%;height:50%;background:radial-gradient(ellipse at 50% 10%,#1A2A3A 0%,#142030 20%,#0E1620 40%,transparent 70%);z-index:0;transition:background 1s ease}.campsite--day .campsite-sky-sliver{background:none}.campsite-sky-sliver:before{content:"";position:absolute;top:5%;left:30%;width:2px;height:2px;background:#aab8cc;border-radius:50%;box-shadow:40px 8px #aab8cc66,120px 15px #aab8cc99,80px 25px #aab8cc4d,200px 5px #aab8cc80,160px 30px #aab8cc40,50px 35px #aab8cc59,250px 18px #aab8cc66;transition:opacity 1s ease}.campsite--day .campsite-sky-sliver:before{opacity:0}.campsite-sky-objects{position:absolute;top:0;left:20%;width:60%;height:45%;z-index:4;pointer-events:none}.campsite-celestial{position:absolute;top:18%;right:18%;filter:drop-shadow(0 0 12px rgba(200,208,216,.15));pointer-events:auto}.campsite--day .campsite-celestial{filter:drop-shadow(0 0 16px rgba(240,208,96,.4))}.campsite-star{position:absolute;background:#c8d0d8;border-radius:50%;animation:twinkle 3s ease-in-out infinite;box-shadow:0 0 3px #c8d0d866}.campsite-trunks-far,.campsite-trunks-mid,.campsite-trunks-near{position:absolute;top:0;left:0;width:100%;height:100%}.campsite-trunks-far{z-index:1}.campsite-trunks-mid{z-index:2}.campsite-trunks-near{z-index:3}.campsite-eyes{position:absolute;inset:0;z-index:0;pointer-events:none;transition:opacity 1s ease}.forest-eyes{position:absolute;display:flex;align-items:center;animation:eyes-blink var(--duration, 5s) ease-in-out infinite}.forest-eye{border-radius:50%;opacity:.7}@keyframes eyes-blink{0%,42%,48%,to{opacity:.7}44%,46%{opacity:0}85%,87%{opacity:0}}.campsite--day .campsite-trunks-far rect{fill:#5a4a38;opacity:1}.campsite--day .campsite-trunks-far polygon{fill:#2e5a28;opacity:1}.campsite--day .campsite-trunks-mid rect{fill:#4a3a28;opacity:1}.campsite--day .campsite-trunks-mid polygon{fill:#1e6a1e;opacity:1}.campsite--day .campsite-trunks-mid line{stroke:#5a4a38;opacity:1}.campsite--day .campsite-trunks-near rect{fill:#3a2a1e;opacity:1}.campsite--day .campsite-trunks-near line{stroke:#4a3a28;opacity:1}.campsite--day .campsite-trunks-near ellipse{fill:#3a2a1e;stroke:#4a3a28;opacity:1}.campsite--day .campsite-eyes{opacity:0;transition:opacity 1s ease}.campsite-floor{bottom:0;height:50%;background:linear-gradient(180deg,#1a1810,#181610,#1a1810);z-index:4;border-top:1px solid #2A2820;transition:background 1s ease,border-color 1s ease}.campsite--day .campsite-floor{background:linear-gradient(180deg,#5c4a32,#4a3a28 30%,#3e3020);border-top:1px solid #6A5A42}.campsite-ground-detail{position:absolute;bottom:0;left:0;width:100%;height:50%;z-index:5;pointer-events:none}.campsite--day .campsite-ground-detail path{stroke:#4a3a28}.campsite--day .campsite-ground-detail polygon{fill:#3e3020;stroke:#4a3a28}.campsite--day .campsite-ground-detail line{stroke:#4a3a28}.campsite--day .campsite-ground-detail g line{stroke:#3e3020}.campsite-mist{position:absolute;bottom:10%;left:0;width:100%;height:30%;background:radial-gradient(ellipse at 50% 100%,rgba(180,180,160,.06) 0%,rgba(140,140,120,.03) 40%,transparent 70%);z-index:5;pointer-events:none}.campsite--day .campsite-mist{opacity:0}.parallax-layer{position:absolute;width:calc(100% + 80px);left:-40px;transition:transform .3s ease-out}.parallax-layer--stars{inset:0;transform:translate(calc(var(--mouse-x) * -3px),calc(var(--mouse-y) * -3px))}.star{position:absolute;background:var(--starlight);border-radius:50%;animation:twinkle var(--duration, 3s) ease-in-out infinite;box-shadow:0 0 6px #fff8e799}.parallax-layer--mountains-far{bottom:0;height:55%;transform:translate(calc(var(--mouse-x) * -8px),calc(var(--mouse-y) * -4px))}.parallax-bg--night .parallax-layer--mountains-far path{fill:#3a2f55}.parallax-bg--dusk .parallax-layer--mountains-far path{fill:#7b6b9a}.parallax-bg--campsite .parallax-layer--mountains-far path{fill:transparent}.parallax-layer--mountains-near{bottom:0;height:45%;transform:translate(calc(var(--mouse-x) * -15px),calc(var(--mouse-y) * -6px))}.parallax-bg--night .parallax-layer--mountains-near path{fill:#2d2648}.parallax-bg--dusk .parallax-layer--mountains-near path{fill:#6a5a8a}.parallax-bg--campsite .parallax-layer--mountains-near path{fill:transparent}.parallax-layer--trees{bottom:0;height:35%;transform:translate(calc(var(--mouse-x) * -22px),calc(var(--mouse-y) * -8px))}.parallax-bg--night .parallax-layer--trees path{fill:#1e1a32}.parallax-bg--dusk .parallax-layer--trees path{fill:#4a5a48}.parallax-bg--campsite .parallax-layer--trees path{fill:transparent}.parallax-layer--ground{bottom:0;height:15%;transform:translate(calc(var(--mouse-x) * -30px))}.parallax-bg--night .parallax-layer--ground{background:linear-gradient(180deg,#1a1530,#141020)}.parallax-bg--dusk .parallax-layer--ground{background:linear-gradient(180deg,#3a4a38,#2a3628)}.parallax-bg--campsite .parallax-layer--ground{background:transparent}.floating-leaf{position:absolute;animation:float-leaf 10s ease-in-out infinite;pointer-events:none;z-index:2}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:12px;font-family:Lora,serif;font-weight:600;cursor:pointer;transition:all .25s ease;white-space:nowrap;text-decoration:none}.btn--sm{padding:6px 14px;font-size:.8rem}.btn--md{padding:10px 22px;font-size:.9rem}.btn--lg{padding:14px 28px;font-size:1rem}.btn--primary{background:linear-gradient(135deg,var(--sage-deep),var(--sage-dark));color:#fff;box-shadow:0 4px 12px #5a7a564d}.btn--primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #5a7a5666}.btn--primary:active:not(:disabled){transform:translateY(0)}.btn--secondary{background:transparent;color:var(--charcoal-light);border:1px solid var(--tan-deep)}.btn--secondary:hover:not(:disabled){background:#00000008}.btn--danger{background:linear-gradient(135deg,var(--rose-deep),#C44A30);color:#fff;box-shadow:0 4px 12px #c44a304d}.btn--danger:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #c44a3066}.btn--danger:active:not(:disabled){transform:translateY(0)}.btn--ghost{background:none;border:none;color:var(--sage-dark);font-weight:600}.btn--ghost:hover:not(:disabled){opacity:.8}.btn--icon{background:none;border:none;padding:6px;border-radius:50%;color:var(--charcoal-light)}.btn--icon:hover:not(:disabled){background:#0000000f}.btn:disabled,.btn--loading{opacity:.5;cursor:not-allowed}.ui-input{width:100%;padding:12px 16px;font-size:.95rem;border:2px solid var(--tan-deep);border-radius:var(--radius-md);background:#ffffffb3;color:var(--charcoal);transition:border-color .3s ease,box-shadow .3s ease}.ui-input:focus{border-color:var(--lavender-deep);box-shadow:0 0 0 3px #b8a5cc4d}.ui-input::placeholder{color:var(--tan-deep);font-style:italic}.ui-input--error{border-color:var(--flame)}.ui-input__error{font-size:.8rem;color:var(--flame);margin-top:4px}.ui-select{width:100%;padding:12px 36px 12px 16px;font-size:.95rem;border:2px solid var(--tan-deep);border-radius:var(--radius-md);background:#ffffffb3;color:var(--charcoal);transition:border-color .3s ease,box-shadow .3s ease;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 5l3 3 3-3' fill='none' stroke='%235A5A5A' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.ui-select:focus{border-color:var(--lavender-deep);box-shadow:0 0 0 3px #b8a5cc4d}.ui-checkbox-group{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ui-checkbox-item{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--charcoal);cursor:pointer;padding:4px 0}.ui-checkbox-item input[type=checkbox]{accent-color:var(--sage-deep);width:16px;height:16px;cursor:pointer}.form-field{display:flex;flex-direction:column;gap:6px}.form-field__label{font-family:var(--font-body);font-size:.8rem;font-weight:700;color:var(--charcoal-light);text-transform:uppercase;letter-spacing:.06em}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative}.login-content{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center;gap:var(--space-xl);padding:var(--space-xl)}.login-header{text-align:center;animation:fade-in-up .8s ease backwards}.login-emblem{margin-bottom:var(--space-md);animation:gentle-bob 5s ease-in-out infinite;filter:drop-shadow(0 0 20px rgba(244,164,96,.3))}.login-title{font-family:var(--font-display);font-size:3rem;font-weight:900;color:var(--parchment);letter-spacing:.08em;text-shadow:0 2px 10px rgba(244,164,96,.3),0 0 40px rgba(244,164,96,.15)}.login-tagline{font-family:var(--font-body);font-style:italic;font-size:1.05rem;color:var(--lavender-light);margin-top:var(--space-xs);opacity:.8}.login-card{background:linear-gradient(145deg,#faf5ebf2,#ede4d0f2);border-radius:var(--radius-lg);padding:0;width:380px;max-width:90vw;overflow:hidden;animation:fade-in-up .8s ease .15s backwards;box-shadow:0 20px 60px #00000059,0 0 0 1px #a88b5b33,inset 0 1px #ffffff80;position:relative}.login-card:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 30% 60%,rgba(168,139,91,.06) 0%,transparent 50%),radial-gradient(ellipse at 70% 30%,rgba(168,139,91,.04) 0%,transparent 50%);pointer-events:none}.login-card-header{display:flex;border-bottom:1px solid rgba(168,139,91,.15);position:relative}.login-tab{flex:1;padding:14px;font-family:var(--font-body);font-weight:600;font-size:.9rem;color:var(--charcoal-light);background:none;border:none;cursor:pointer;transition:all .3s ease;position:relative}.login-tab--active{color:var(--charcoal)}.login-tab--active:after{content:"";position:absolute;bottom:-1px;left:20%;width:60%;height:2px;background:var(--sage-deep);border-radius:2px}.login-tab:hover:not(.login-tab--active){color:var(--charcoal);background:#00000005}.login-form{padding:var(--space-lg) var(--space-xl) var(--space-md);display:flex;flex-direction:column;gap:var(--space-md);position:relative}.login-field--appear{animation:fade-in-up .3s ease}.login-error{font-size:.85rem;color:var(--flame);animation:fade-in .2s ease}.login-submit{margin-top:var(--space-xs);padding:14px;font-family:var(--font-body);font-weight:700;font-size:1rem;color:#fff;background:linear-gradient(135deg,var(--sage-deep),var(--sage-dark));border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .3s ease;box-shadow:0 4px 16px #5a7a5659;letter-spacing:.02em}.login-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 24px #5a7a5673}.login-submit:active:not(:disabled){transform:translateY(0)}.login-submit:disabled{opacity:.5;cursor:not-allowed}.login-loading{font-style:italic}.login-footer{text-align:center;padding:var(--space-md) var(--space-xl) var(--space-lg);font-size:.85rem;color:var(--charcoal-light);position:relative}.login-switch{background:none;border:none;color:var(--sage-dark);font-weight:700;cursor:pointer;font-size:inherit;font-family:inherit;text-decoration:underline;text-underline-offset:2px;transition:color .2s ease}.login-switch:hover{color:var(--sage-deep)}.login-decoration{animation:fade-in 1s ease .5s backwards;opacity:.5}.app-header{position:fixed;top:0;left:0;right:0;z-index:50;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:var(--space-sm) var(--space-xl) var(--space-sm) 60px;background:#0a081466;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,248,231,.06)}.app-header__left{display:flex;align-items:center;gap:var(--space-xs)}.app-header__logo{filter:drop-shadow(0 0 6px rgba(244,164,96,.3))}.app-header__brand{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--parchment);letter-spacing:.05em}.app-header__center{display:flex;align-items:center;gap:var(--space-xs);justify-self:center}.app-header__page-icon{display:flex;align-items:center;filter:drop-shadow(0 0 6px rgba(244,164,96,.3))}.app-header__page-title{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--parchment);letter-spacing:.04em}.app-header__right{display:flex;align-items:center;gap:var(--space-md);justify-self:end}.app-header__user-btn{display:flex;align-items:center;gap:var(--space-sm);background:#ffffff0f;border:1px solid rgba(255,248,231,.12);border-radius:var(--radius-xl);padding:4px 14px 4px 4px;cursor:pointer;transition:all .3s ease}.app-header__user-btn:hover{background:#ffffff1f;border-color:#fff8e740}.app-header__avatar{flex-shrink:0}.app-header__user-name{font-size:.85rem;font-family:var(--font-body);color:var(--lavender-light)}.app-header__action-btn{display:flex;align-items:center;gap:var(--space-xs);font-family:var(--font-body);font-size:.85rem;font-weight:600;color:var(--parchment);background:#ffffff14;border:1px solid rgba(255,248,231,.15);padding:6px 14px;border-radius:var(--radius-xl);cursor:pointer;transition:all .3s ease}.app-header__action-btn:hover{background:#ffffff26;border-color:#fff8e74d}.home-page{min-height:100vh;position:relative}.home-content{position:relative;z-index:10;min-height:100vh;display:flex;flex-direction:column;padding-top:56px}.home-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-xl) var(--space-md) 60px;background:#0a08144d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,248,231,.08)}.home-brand{display:flex;align-items:center;gap:var(--space-sm)}.home-brand-text{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--parchment);letter-spacing:.05em}.home-brand-icon{filter:drop-shadow(0 0 8px rgba(244,164,96,.3))}.home-nav{display:flex;align-items:center;gap:var(--space-sm)}.home-nav-link{display:flex;align-items:center;gap:5px;background:#ffffff0f;border:1px solid rgba(255,248,231,.12);border-radius:var(--radius-xl);padding:6px 14px;font-family:var(--font-body);font-size:.82rem;color:var(--lavender-light);cursor:pointer;transition:all .2s ease}.home-nav-link:hover{background:#ffffff1f;border-color:#fff8e740;color:var(--parchment)}.home-user{display:flex;align-items:center;gap:var(--space-md)}.home-user-btn{display:flex;align-items:center;gap:var(--space-sm);background:#ffffff0f;border:1px solid rgba(255,248,231,.12);border-radius:var(--radius-xl);padding:4px 14px 4px 4px;cursor:pointer;transition:all .3s ease}.home-user-btn:hover{background:#ffffff1f;border-color:#fff8e740}.home-user-avatar{flex-shrink:0}.home-user-name{font-size:.85rem;font-family:var(--font-body);color:var(--lavender-light)}.home-logout{font-size:.8rem;font-weight:600;color:var(--rose);background:#e8b4b81a;border:1px solid rgba(232,180,184,.25);padding:6px 14px;border-radius:var(--radius-xl);cursor:pointer;transition:all .3s ease}.home-logout:hover{background:#e8b4b833;border-color:#e8b4b866}.home-hero{text-align:center;padding:var(--space-2xl) var(--space-xl) var(--space-xl);animation:fade-in-up .6s ease backwards}.home-title{font-family:var(--font-display);font-size:2.2rem;font-weight:900;color:var(--parchment);letter-spacing:.04em;text-shadow:0 2px 12px rgba(0,0,0,.3)}.home-subtitle{font-family:var(--font-body);font-style:italic;font-size:1rem;color:var(--lavender-light);margin-top:var(--space-xs);opacity:.7}.home-trips{flex:1;padding:0 var(--space-xl) var(--space-2xl);max-width:720px;width:100%;margin:0 auto}.home-grid{display:flex;flex-direction:column;gap:var(--space-sm)}.trip-card-wrapper{position:relative}.trip-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:#faf5ebeb;border:1px solid rgba(168,139,91,.2);border-radius:var(--radius-md);cursor:pointer;transition:all .3s ease;animation:fade-in-up .5s ease backwards;text-align:left;width:100%;box-shadow:0 4px 16px #00000026;position:relative;z-index:2}.trip-card:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 20% 50%,rgba(168,139,91,.04) 0%,transparent 50%);pointer-events:none}.trip-card:hover{transform:translateY(-2px) translate(4px);box-shadow:0 8px 28px #0003;border-color:#a88b5b59}.trip-card__icon{flex-shrink:0}.trip-card__icon--new{opacity:.6}.trip-card__info{flex:1;min-width:0}.trip-card__name{font-family:var(--font-heading);font-size:1.15rem;color:var(--charcoal);margin-bottom:2px}.trip-card__name--new{color:var(--sage-dark)}.trip-card__date{font-size:.78rem;color:var(--charcoal-light);opacity:.7}.trip-card__arrow{flex-shrink:0;color:var(--tan-deep);transition:transform .3s ease,color .3s ease}.trip-card__delete-zone{position:absolute;left:calc(100% - 10px);top:-2px;bottom:2px;width:0;overflow:hidden;transition:width .3s ease;display:flex;align-items:center;justify-content:center;background:#d94f3b;border-radius:0 var(--radius-md) var(--radius-md) 0;z-index:1;box-shadow:2px 0 8px #d94f3b4d}.trip-card-wrapper:hover .trip-card__delete-zone{width:62px;transition:width .3s ease .6s}.trip-card__delete{background:none;border:none;cursor:pointer;color:#fff;padding:8px;border-radius:50%;transition:all .2s ease;margin-left:10px}.trip-card__delete:hover{background:#fff3}.trip-card__leave-zone{position:absolute;left:calc(100% - 10px);top:-2px;bottom:2px;width:0;overflow:hidden;transition:width .3s ease;display:flex;align-items:center;justify-content:center;background:var(--charcoal-light);border-radius:0 var(--radius-md) var(--radius-md) 0;z-index:1;box-shadow:2px 0 8px #0003}.trip-card-wrapper:hover .trip-card__leave-zone{width:62px;transition:width .3s ease .6s}.trip-card__leave{background:none;border:none;cursor:pointer;color:#fff;padding:8px;border-radius:50%;transition:all .2s ease;margin-left:10px}.trip-card__leave:hover{background:#fff3}.trip-card__join{flex-shrink:0;display:flex;align-items:center;gap:4px;color:var(--sage-deep);font-family:var(--font-body);font-weight:700;font-size:.8rem;transition:transform .3s ease,color .3s ease}.trip-card:hover .trip-card__join{transform:scale(1.1);color:var(--sage-dark)}.trip-card__join--loading{opacity:.5}.trip-card__join-text{letter-spacing:.03em}.trip-card:hover .trip-card__arrow{transform:translate(4px);color:var(--sage-deep)}.trip-card__plus{flex-shrink:0;font-size:1.5rem;color:var(--sage);font-weight:300;transition:transform .3s ease}.trip-card:hover .trip-card__plus{transform:scale(1.2)}.trip-card--new{background:#faf5eb99;border-style:dashed;border-color:#8fb08a4d}.trip-card--new:hover{background:#faf5ebd9;border-color:#8fb08a80}.trip-card--form{flex-direction:column;align-items:stretch;gap:var(--space-md);padding:var(--space-lg);cursor:default}.trip-create-input{width:100%;padding:12px 16px;font-size:1rem;font-family:var(--font-body);border:2px solid var(--tan-deep);border-radius:var(--radius-md);background:#fff9;color:var(--charcoal);transition:border-color .3s ease,box-shadow .3s ease}.trip-create-input:focus{border-color:var(--sage-deep);box-shadow:0 0 0 3px #8fb08a40;outline:none}.trip-create-input::placeholder{color:var(--tan-deep);font-style:italic}.trip-create-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.trip-create-cancel{padding:8px 16px;font-size:.85rem;color:var(--charcoal-light);background:none;border:1px solid var(--tan-deep);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-body);transition:background .2s ease}.trip-create-cancel:hover{background:#0000000a}.trip-create-submit{padding:8px 20px;font-size:.85rem;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--sage-deep),var(--sage-dark));border:none;border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-body);box-shadow:0 4px 12px #5a7a564d;transition:all .3s ease}.trip-create-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px #5a7a5666}.trip-create-submit:disabled{opacity:.5;cursor:not-allowed}.home-loading{text-align:center;padding:var(--space-2xl);color:var(--lavender-light);opacity:.7;font-style:italic;animation:fade-in .3s ease}.home-loading-flame{width:20px;height:30px;margin:0 auto var(--space-md);background:radial-gradient(ellipse at bottom,var(--ember) 0%,transparent 70%);border-radius:50%/60% 60% 40% 40%;animation:campfire-dance .8s ease-in-out infinite}.home-error{text-align:center;color:var(--rose);background:#e8b4b826;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-md);font-size:.9rem}.home-empty{text-align:center;padding:var(--space-2xl);animation:fade-in .5s ease}.home-empty-icon{opacity:.5;margin-bottom:var(--space-md);animation:gentle-bob 4s ease-in-out infinite}.home-empty-text{color:var(--lavender-light);font-style:italic;opacity:.6}.modal-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#0a0814b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade-in .25s ease}.modal-content{background:linear-gradient(145deg,#faf5ebf7,#ede4d0f7);border:1px solid rgba(168,139,91,.3);border-radius:var(--radius-lg);padding:var(--space-xl) var(--space-xl) var(--space-lg);max-width:420px;width:90%;text-align:left;animation:scale-in .3s ease;box-shadow:0 20px 60px #0006,0 0 0 1px #fff8e71a,inset 0 1px #fff6;position:relative;overflow:auto}.modal-content:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 20% 50%,rgba(168,139,91,.06) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(168,139,91,.04) 0%,transparent 50%);pointer-events:none}.modal-content--sm{max-width:340px}.modal-content--lg{max-width:600px}.modal-content--xl{max-width:860px}.modal-close-btn{position:absolute;top:var(--space-md);right:var(--space-md);width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:50%;cursor:pointer;color:var(--charcoal-light);transition:all .2s ease;z-index:10}.modal-close-btn:hover{background:#00000014;color:var(--charcoal)}.modal-content--coming-soon{border-color:#d4bc9466;text-align:center}.modal-icon-large{margin-bottom:var(--space-md);text-align:center}.modal-title{font-family:var(--font-display);font-size:1.3rem;font-weight:700;color:var(--charcoal);margin-bottom:var(--space-sm);position:relative;text-align:center}.modal-flavor{font-family:var(--font-body);font-style:italic;font-size:1rem;color:var(--charcoal-light);margin-bottom:var(--space-md);line-height:1.5;text-align:center}.modal-divider{display:flex;justify-content:center;margin-bottom:var(--space-md);opacity:.5}.modal-subtitle{font-family:var(--font-body);font-size:.9rem;color:var(--charcoal-light);margin-bottom:var(--space-lg);line-height:1.5;position:relative;text-align:center}.modal-form{display:flex;flex-direction:column;gap:var(--space-md);position:relative}.modal-input{width:100%;padding:12px 16px;font-size:.95rem;border:2px solid var(--tan-deep);border-radius:var(--radius-md);background:#ffffffb3;color:var(--charcoal);transition:border-color .3s ease,box-shadow .3s ease}.modal-input:focus{border-color:var(--lavender-deep);box-shadow:0 0 0 3px #b8a5cc4d}.modal-input::placeholder{color:var(--tan-deep);font-style:italic}.modal-error{font-size:.85rem;color:var(--flame);text-align:left}.modal-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.modal-email-row{display:flex;flex-direction:column;gap:4px}.modal-email-input-wrap{display:flex;align-items:center;gap:8px}.modal-email-input-wrap .modal-input{flex:1}.modal-email-remove{background:none;border:none;cursor:pointer;font-size:1.4rem;color:var(--charcoal-light);padding:4px 8px;line-height:1;border-radius:var(--radius-sm);transition:color .2s ease,background .2s ease}.modal-email-remove:hover{color:var(--flame);background:#e85d3a1a}.modal-add-email{background:none;border:none;cursor:pointer;font-family:var(--font-body);font-size:.85rem;font-weight:600;color:var(--sage-deep);padding:6px 0;text-align:left;transition:color .2s ease}.modal-add-email:hover{color:var(--sage-dark)}.campfire-container{position:relative;width:140px;height:160px;z-index:10;margin-top:90px}.campfire-ground-glow{position:absolute;bottom:10px;left:50%;transform:translate(-50%);width:200px;height:60px;background:radial-gradient(ellipse,rgba(244,164,96,.35) 0%,rgba(232,93,58,.15) 40%,transparent 70%);border-radius:50%;animation:pulse-glow 3s ease-in-out infinite;filter:blur(8px)}.campfire-smoke{position:absolute;top:-20px;left:0;width:100%;height:80px;pointer-events:none}.smoke-particle{position:absolute;bottom:0;width:20px;height:20px;background:radial-gradient(circle,rgba(180,180,180,.25) 0%,transparent 70%);border-radius:50%;animation:smoke-rise 3.5s ease-out infinite}.campfire-flames{position:absolute;bottom:18px;left:50%;transform:translate(-50%);width:60px;height:70px}.flame{position:absolute;bottom:0;left:50%;border-radius:50%/60% 60% 40% 40%;transform-origin:bottom center}.flame--outer{width:46px;height:60px;margin-left:-25px;background:radial-gradient(ellipse at bottom,#f4a460,#e85d3a,#e85d3a00 80%);animation:campfire-dance .8s ease-in-out infinite;filter:blur(2px)}.flame--mid{width:34px;height:48px;margin-left:-19px;background:radial-gradient(ellipse at bottom,#ff8c42,#f4a460 50%,#f4a46000 85%);animation:campfire-dance .6s ease-in-out infinite .1s;filter:blur(1px)}.flame--inner{width:22px;height:38px;margin-left:-13px;background:radial-gradient(ellipse at bottom,#ffd166,#ff8c42 60%,#ff8c4200 90%);animation:campfire-dance .5s ease-in-out infinite .2s}.flame--core{width:12px;height:26px;margin-left:-7px;background:radial-gradient(ellipse at bottom,#fff8e7,#ffd166 50%,#ffd16600 85%);animation:campfire-dance .4s ease-in-out infinite .15s}.campfire-embers{position:absolute;bottom:38px;left:0;width:100%;height:60px;pointer-events:none}.ember{position:absolute;bottom:0;width:3px;height:3px;background:#ffd166;border-radius:50%;box-shadow:0 0 4px #ff8c42;animation:ember-rise 2s ease-out infinite}.campfire-logs{position:absolute;bottom:15px;left:50%;transform:translate(-50%);width:80px;height:30px}.log{position:absolute;border-radius:4px;background:linear-gradient(90deg,#5a3a1e,#7a5230,#5a3a1e);box-shadow:inset 0 -2px 4px #0000004d,0 2px 4px #0000004d}.log--1{width:60px;height:10px;bottom:2px;left:2px;transform:rotate(-15deg)}.log--2{width:60px;height:10px;bottom:2px;right:2px;transform:rotate(15deg)}.log--3{width:50px;height:9px;bottom:10px;left:50%;margin-left:-25px;transform:rotate(-3deg)}.campfire-stones{position:absolute;bottom:20px;left:50%;transform:translate(-50%);width:0;height:0;z-index:-1}.stone{position:absolute;width:14px;height:11px;background:linear-gradient(135deg,#6b6b7b,#4a4a58);border-radius:50%;box-shadow:inset 0 -2px 3px #0006,0 1px 2px #0000004d}.camper-avatar{position:absolute;display:flex;flex-direction:column-reverse;align-items:center;gap:0;animation:fade-in .4s ease-out backwards;transition:transform .4s ease-out;z-index:5}.camper-avatar--add{background:none;border:none;cursor:pointer;padding:0;transition:transform .4s ease-out}.camper-avatar--add:hover{transform:translate(var(--tx, 0),var(--ty, 0)) scale(1.08)}.camper-avatar--add:hover .avatar-figure--ghost{filter:drop-shadow(0 0 12px rgba(255,248,231,.4))}.camper-avatar--add:hover .avatar-name--ghost{color:#fff8e7cc}.avatar-figure{position:relative;animation:gentle-bob 4s ease-in-out infinite;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.avatar-figure--ghost{animation:gentle-bob 4s ease-in-out infinite;opacity:.6;transition:filter .3s ease,opacity .3s ease}.camper-avatar--add:hover .avatar-figure--ghost{opacity:1}.avatar-name{font-family:var(--font-body);font-size:.7rem;font-weight:600;color:var(--parchment);text-shadow:0 1px 4px rgba(0,0,0,.6);background:#00000059;padding:2px 8px;border-radius:8px;white-space:nowrap;max-width:100px;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px}.avatar-name--ghost{color:#fff8e766;background:#0003;transition:color .3s ease;font-family:var(--font-body);font-size:.65rem}.avatar-remove{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:none;border:none;cursor:pointer;padding:0;opacity:0;transition:opacity .2s ease,transform .2s ease;z-index:20}.camper-avatar:hover .avatar-remove{opacity:1}.camper-avatar:has(.avatar-remove):hover .avatar-question-mark{display:none}.avatar-remove:hover{transform:translate(-50%,-50%) scale(1.1)}.camper-avatar--pending{cursor:default}.camper-avatar--pending .avatar-figure{opacity:.6}.avatar-name--pending{color:#fff8e766;background:#0003;font-style:italic;font-size:.6rem}.camper-avatar--failed{opacity:.7}.camper-avatar--failed .avatar-figure{filter:drop-shadow(0 0 8px rgba(232,93,58,.5))}.camper-avatar--failed .avatar-figure svg{filter:hue-rotate(-20deg) saturate(.3)}.avatar-name--failed{color:#e85d3a;background:#e85d3a33;font-style:italic;font-size:.6rem;border:1px solid rgba(232,93,58,.3)}.avatar-name--email{max-width:120px}.avatar-eyes-shift{animation:eyes-shift 6s ease-in-out infinite}@keyframes eyes-shift{0%,78%,to{transform:translate(0)}82%{transform:translate(.9px)}86%,89%{transform:translate(.9px)}92%,96%{transform:translate(-.5px)}99%{transform:translate(0)}}.avatar-fire-glow{position:absolute;top:0;left:50%;transform:translate(-50%);width:48px;height:64px;background:radial-gradient(ellipse at center bottom,rgba(244,164,96,.15) 0%,transparent 70%);pointer-events:none;animation:pulse-glow 3s ease-in-out infinite}.interactable-item{position:absolute;background:none;border:none;cursor:pointer;padding:0;transform:translate(-50%,-50%);z-index:8;transition:transform .3s ease,filter .3s ease}.interactable-item:hover{transform:translate(-50%,-50%) scale(1.08)}.interactable-item__glow{position:absolute;inset:-20px;border-radius:50%;background:radial-gradient(circle,rgba(255,248,231,.15) 0%,transparent 70%);opacity:0;transition:opacity .4s ease;pointer-events:none}.interactable-item--hovered .interactable-item__glow{opacity:1;animation:pulse-glow 2s ease-in-out infinite}.interactable-item__content{position:relative;filter:drop-shadow(0 4px 12px rgba(0,0,0,.4));transition:filter .3s ease}.interactable-item--hovered .interactable-item__content{filter:drop-shadow(0 4px 12px rgba(0,0,0,.4)) drop-shadow(0 0 16px rgba(244,164,96,.4))}.interactable-item__tooltip{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%) translateY(8px);white-space:nowrap;font-family:var(--font-body);font-size:.8rem;font-weight:600;color:var(--parchment);background:#1a1333e6;border:1px solid rgba(255,248,231,.15);padding:6px 14px;border-radius:20px;opacity:0;pointer-events:none;transition:opacity .3s ease,transform .3s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 20px #0006}.interactable-item__tooltip--visible{opacity:1;transform:translate(-50%) translateY(0)}.tooltip-icon{margin-right:4px;color:var(--ember)}.gear-modal{max-height:85vh;display:flex;flex-direction:column;overflow:hidden;text-align:left;padding:0}.gear-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xl) var(--space-xl) var(--space-lg);border-bottom:1px solid rgba(168,139,91,.15);position:relative;z-index:1}.gear-modal-header-left{display:flex;align-items:center;gap:var(--space-md)}.gear-modal-icon{flex-shrink:0;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.gear-modal-title{font-family:var(--font-display);font-size:1.2rem;font-weight:700;color:var(--charcoal);letter-spacing:.02em}.gear-modal-subtitle{font-family:var(--font-body);font-size:.8rem;color:var(--charcoal-light);font-style:italic;margin-top:2px}.gear-overall-progress{padding:0 var(--space-xl);position:relative;z-index:1}.gear-overall-bar{height:3px;background:#a88b5b1f;border-radius:2px;overflow:hidden}.gear-overall-fill{height:100%;background:linear-gradient(90deg,var(--sage-deep),var(--sage));border-radius:2px;transition:width .5s ease}.gear-modal-body{flex:1;overflow-y:auto;padding:var(--space-md) var(--space-xl) var(--space-xl);position:relative;z-index:1}.gear-modal-body::-webkit-scrollbar{width:6px}.gear-modal-body::-webkit-scrollbar-track{background:transparent}.gear-modal-body::-webkit-scrollbar-thumb{background:#a88b5b33;border-radius:3px}.gear-modal-body::-webkit-scrollbar-thumb:hover{background:#a88b5b59}.gear-section{--section-accent: var(--sage);margin-bottom:var(--space-sm)}.gear-section-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-sm) var(--space-sm);background:none;border:none;cursor:pointer;border-radius:var(--radius-sm);transition:background .2s ease}.gear-section-header:hover{background:#00000008}.gear-section-title-row{display:flex;align-items:center;gap:var(--space-sm)}.gear-section-chevron{color:var(--charcoal-light);transition:transform .25s ease;flex-shrink:0}.gear-section-chevron--open{transform:rotate(90deg)}.gear-section-title{font-family:var(--font-body);font-size:.95rem;font-weight:700;color:var(--charcoal)}.gear-section-subtitle{font-family:var(--font-body);font-size:.75rem;color:var(--charcoal-light);font-style:italic}.gear-section-stats{display:flex;align-items:center;gap:var(--space-sm)}.gear-section-count{font-family:var(--font-body);font-size:.75rem;font-weight:600;color:var(--charcoal-light);white-space:nowrap}.gear-progress-bar{width:48px;height:4px;background:#0000000f;border-radius:2px;overflow:hidden}.gear-progress-fill{height:100%;background:var(--section-accent, var(--sage-deep));border-radius:2px;transition:width .4s ease}.gear-section-body{padding:var(--space-xs) 0 var(--space-sm) calc(var(--space-sm) + 16px + var(--space-sm));animation:gear-section-expand .2s ease}@keyframes gear-section-expand{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.gear-category-group{margin-bottom:var(--space-xs)}.gear-category-label{display:flex;align-items:center;gap:6px;font-family:var(--font-body);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--tan-dark);padding:var(--space-xs) 0 2px}.gear-category-icon{font-size:.65rem;opacity:.7}.gear-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);transition:background .15s ease}.gear-item:hover{background:#00000006}.gear-item:hover .gear-item-actions{opacity:1}.gear-item--packed .gear-item-name{text-decoration:line-through;color:var(--charcoal-light);opacity:.6}.gear-item--packed .gear-item-category-icon{opacity:.35}.gear-item--packed .gear-item-qty{opacity:.4}.gear-check{width:18px;height:18px;border-radius:4px;border:2px solid var(--tan-deep);background:#fff9;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0;padding:0;color:#fff}.gear-check:hover{border-color:var(--sage-deep)}.gear-check--checked{background:var(--sage-deep);border-color:var(--sage-deep)}.gear-item-category-icon{font-size:.7rem;color:var(--tan-dark);width:14px;text-align:center;flex-shrink:0}.gear-item-name{font-family:var(--font-body);font-size:.85rem;color:var(--charcoal);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:all .2s ease}.gear-item-qty{font-family:var(--font-body);font-size:.75rem;font-weight:600;color:var(--charcoal-light);background:#0000000a;padding:1px 6px;border-radius:8px;flex-shrink:0}.gear-item-actions{display:flex;gap:2px;opacity:0;transition:opacity .15s ease;flex-shrink:0}.gear-item-edit,.gear-item-delete{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:none;color:var(--charcoal-light);cursor:pointer;transition:all .15s ease;padding:0}.gear-item-edit:hover{background:#0000000f;color:var(--charcoal)}.gear-item-delete:hover{background:#e85d3a14;color:var(--flame)}.gear-item--editing{background:#ffffff80;border:1px solid rgba(168,139,91,.2);padding:6px 8px;gap:6px}.gear-item-edit-name{flex:1;min-width:0;font-family:var(--font-body);font-size:.85rem;padding:4px 8px;border:1px solid var(--tan-deep);border-radius:4px;background:#ffffffb3;color:var(--charcoal)}.gear-item-edit-name:focus{border-color:var(--lavender-deep);box-shadow:0 0 0 2px #b8a5cc33}.gear-item-edit-category{font-family:var(--font-body);font-size:.75rem;padding:4px;border:1px solid var(--tan-deep);border-radius:4px;background:#ffffffb3;color:var(--charcoal);cursor:pointer}.gear-item-edit-qty{display:flex;align-items:center;gap:2px}.gear-item-edit-actions{display:flex;gap:2px}.gear-save-btn,.gear-cancel-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:.85rem;font-weight:700;cursor:pointer;padding:0;transition:all .15s ease}.gear-save-btn{background:var(--sage-deep);color:#fff}.gear-save-btn:hover{background:var(--sage-dark)}.gear-cancel-btn{background:#0000000f;color:var(--charcoal-light)}.gear-cancel-btn:hover{background:#0000001a}.gear-add-qty,.gear-item-edit-qty{display:flex;align-items:center;gap:2px}.gear-qty-btn{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:4px;background:#0000000d;color:var(--charcoal);font-size:.85rem;font-weight:700;cursor:pointer;padding:0;transition:background .15s ease;line-height:1}.gear-qty-btn:hover:not(:disabled){background:#0000001a}.gear-qty-btn:disabled{opacity:.3;cursor:not-allowed}.gear-qty-value{font-family:var(--font-body);font-size:.8rem;font-weight:600;color:var(--charcoal);min-width:20px;text-align:center}.gear-add-form{display:flex;align-items:center;gap:6px;margin-top:var(--space-sm);padding:6px 0}.gear-add-input{flex:1;min-width:0;font-family:var(--font-body);font-size:.85rem;padding:6px 10px;border:1px dashed rgba(168,139,91,.3);border-radius:var(--radius-sm);background:#ffffff4d;color:var(--charcoal);transition:all .2s ease}.gear-add-input:focus{border-style:solid;border-color:var(--sage-deep);background:#fff9;box-shadow:0 0 0 2px #8fb08a26}.gear-add-input::placeholder{color:var(--tan-deep);font-style:italic}.gear-add-category{font-family:var(--font-body);font-size:.75rem;padding:6px 4px;border:1px dashed rgba(168,139,91,.3);border-radius:var(--radius-sm);background:#ffffff4d;color:var(--charcoal);cursor:pointer}.gear-add-category:focus{border-style:solid;border-color:var(--sage-deep)}.gear-add-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(135deg,var(--sage-deep),var(--sage-dark));color:#fff;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .2s ease;flex-shrink:0;padding:0;box-shadow:0 2px 8px #5a7a5640}.gear-add-btn:hover:not(:disabled){transform:scale(1.1);box-shadow:0 4px 12px #5a7a5659}.gear-add-btn:disabled{opacity:.3;cursor:not-allowed;transform:none}.gear-day-tabs{display:flex;align-items:center;gap:4px;padding:var(--space-sm) 0 var(--space-xs);overflow-x:auto;scrollbar-width:none}.gear-day-tabs::-webkit-scrollbar{display:none}.gear-day-tab{font-family:var(--font-body);font-size:.78rem;font-weight:600;padding:6px 14px;border-radius:20px;border:1px solid rgba(168,139,91,.2);background:#ffffff4d;color:var(--charcoal-light);cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0}.gear-day-tab:hover{background:#ffffff80;border-color:#a88b5b59;color:var(--charcoal)}.gear-day-tab--active{background:var(--sage-deep);border-color:var(--sage-deep);color:#fff;box-shadow:0 2px 8px #5a7a5640}.gear-day-tab--active:hover{background:var(--sage-dark);border-color:var(--sage-dark);color:#fff}.gear-day-tab--add{width:30px;height:30px;padding:0;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;border-style:dashed;color:var(--tan-dark)}.gear-day-tab--add:hover{border-style:solid;background:#8fb08a1f;border-color:var(--sage-deep);color:var(--sage-deep)}.gear-divider{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) 0}.gear-divider-label{font-family:var(--font-display);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--tan-dark);white-space:nowrap}.gear-empty{font-family:var(--font-body);font-size:.85rem;font-style:italic;color:var(--charcoal-light);opacity:.6;padding:var(--space-sm) 0}.gear-loading{text-align:center;padding:var(--space-2xl) var(--space-lg);color:var(--charcoal-light);font-style:italic;font-size:.9rem}.gear-loading-pack{width:32px;height:40px;margin:0 auto var(--space-md);background:linear-gradient(to bottom,var(--sage) 60%,var(--sage-deep) 100%);border-radius:6px 6px 4px 4px;position:relative;animation:gear-pack-bob 1.2s ease-in-out infinite}.gear-loading-pack:before{content:"";position:absolute;top:-4px;left:4px;right:4px;height:8px;background:var(--sage-deep);border-radius:4px 4px 0 0;animation:gear-pack-flap 1.2s ease-in-out infinite;transform-origin:left center}@keyframes gear-pack-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes gear-pack-flap{0%,to{transform:rotate(0)}30%{transform:rotate(-8deg)}60%{transform:rotate(3deg)}}@media(max-width:600px){.gear-modal{max-height:90vh}.gear-modal-header{padding:var(--space-md) var(--space-md)}.gear-modal-body{padding:var(--space-sm) var(--space-md) var(--space-lg)}.gear-add-form{flex-wrap:wrap}.gear-add-input{flex:1 1 100%}.gear-item--editing{flex-wrap:wrap}.gear-item-edit-name{flex:1 1 100%}}.meal-plan-modal{height:88vh;display:flex;flex-direction:column;overflow:hidden;text-align:left;padding:0}.mp-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xl) var(--space-xl) var(--space-lg);border-bottom:1px solid rgba(168,139,91,.15);position:relative;z-index:1;gap:var(--space-md)}.mp-header-left{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.mp-header-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.mp-title{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--charcoal);letter-spacing:.02em;white-space:nowrap}.mp-tabs{display:flex;gap:2px;background:#0000000a;border-radius:20px;padding:2px}.mp-tab{font-family:var(--font-body);font-size:.78rem;font-weight:600;padding:5px 14px;border-radius:18px;background:none;color:var(--charcoal-light);cursor:pointer;transition:all .2s ease;white-space:nowrap}.mp-tab:hover{color:var(--charcoal)}.mp-tab--active{background:var(--ember);color:#fff;box-shadow:0 2px 6px #f4a4604d}.mp-tab--active:hover{color:#fff}.mp-body{flex:1;overflow:hidden;position:relative;z-index:1;min-height:0}.mp-body::-webkit-scrollbar{width:6px}.mp-body::-webkit-scrollbar-track{background:transparent}.mp-body::-webkit-scrollbar-thumb{background:#a88b5b33;border-radius:3px}.mp-loading{text-align:center;padding:var(--space-2xl) var(--space-lg);color:var(--charcoal-light);font-style:italic;font-size:.9rem}.mp-loading-pot{width:36px;height:28px;margin:0 auto var(--space-md);background:var(--charcoal-light);border-radius:0 0 50% 50%;position:relative;animation:gear-pack-bob 1.2s ease-in-out infinite}.mp-loading-pot:before{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%);width:6px;height:10px;background:#ffffff4d;border-radius:50%;animation:mp-steam 1s ease-in-out infinite}@keyframes mp-steam{0%,to{opacity:.2;transform:translate(-50%) translateY(0)}50%{opacity:.5;transform:translate(-50%) translateY(-6px)}}.mp-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl) var(--space-xl);text-align:center;height:100%;overflow-y:auto}.mp-empty-icon{margin-bottom:var(--space-lg)}.mp-empty-text{font-family:var(--font-body);font-size:1rem;font-style:italic;color:var(--charcoal-light);margin-bottom:var(--space-xl)}.mp-create-form{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);width:100%;max-width:320px}.mp-create-input{width:100%;padding:10px 14px;font-family:var(--font-body);font-size:.95rem;border:2px solid var(--tan-deep);border-radius:var(--radius-md);background:#ffffffb3;color:var(--charcoal);text-align:center;transition:border-color .2s ease,box-shadow .2s ease}.mp-create-input:focus{border-color:var(--ember);box-shadow:0 0 0 3px #f4a46033}.mp-create-input::placeholder{color:var(--tan-deep);font-style:italic}.mp-error{font-family:var(--font-body);font-size:.85rem;color:var(--flame);text-align:center}.mp-create-btn{background:linear-gradient(135deg,var(--ember),var(--flame))!important;box-shadow:0 4px 12px #f4a4604d!important}.mp-create-btn:hover:not(:disabled){box-shadow:0 6px 20px #f4a46066!important}.mp-servings-stepper{display:flex;align-items:center;gap:var(--space-sm)}.mp-servings-stepper--inline{gap:var(--space-xs)}.mp-servings-label{font-family:var(--font-body);font-size:.85rem;font-weight:600;color:var(--charcoal-light)}.mp-stepper-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#0000000f;color:var(--charcoal);font-size:1rem;font-weight:700;cursor:pointer;transition:all .15s ease;padding:0;line-height:1}.mp-stepper-btn:hover:not(:disabled){background:#0000001a}.mp-stepper-btn:disabled{opacity:.3;cursor:not-allowed}.mp-stepper-value{font-family:var(--font-body);font-size:1rem;font-weight:700;color:var(--charcoal);min-width:24px;text-align:center}.mp-overview{padding:var(--space-md) var(--space-xl) var(--space-xl);overflow-y:auto;height:100%}.mp-plan-header{margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid rgba(168,139,91,.12);display:flex;flex-direction:column;gap:var(--space-sm)}.mp-plan-name-input{font-family:var(--font-heading);font-size:1.2rem;color:var(--charcoal);background:none;border:1px solid transparent;border-radius:var(--radius-sm);padding:2px 6px;margin:-2px -6px;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.mp-plan-name-input:hover:not(:focus){border-color:#a88b5b26}.mp-plan-name-input:focus{background:#ffffff80;border-color:var(--ember);box-shadow:0 0 0 2px #f4a46026;outline:none}.mp-plan-servings-row{display:flex;align-items:center}.mp-plan-template-row{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.mp-day-tabs{display:flex;align-items:center;gap:4px;padding-bottom:var(--space-md);overflow-x:auto;scrollbar-width:none}.mp-day-tabs::-webkit-scrollbar{display:none}.mp-day-tab{display:flex;align-items:center;gap:2px;flex-shrink:0}.mp-day-tab-btn{font-family:var(--font-body);font-size:.78rem;font-weight:600;padding:6px 14px;border-radius:20px;border:1px solid rgba(168,139,91,.2);background:#ffffff4d;color:var(--charcoal-light);cursor:pointer;transition:all .2s ease;white-space:nowrap}.mp-day-tab-btn:hover{background:#ffffff80;border-color:#a88b5b59;color:var(--charcoal)}.mp-day-tab--active .mp-day-tab-btn{background:var(--ember);border-color:var(--ember);color:#fff;box-shadow:0 2px 8px #f4a46040}.mp-day-tab--active .mp-day-tab-btn:hover{background:var(--ember-bright);border-color:var(--ember-bright);color:#fff}.mp-day-tab-remove{width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:none;color:var(--charcoal-light);cursor:pointer;opacity:0;transition:all .15s ease;padding:0}.mp-day-tab:hover .mp-day-tab-remove{opacity:.6}.mp-day-tab-remove:hover{opacity:1!important;background:#e85d3a1a;color:var(--flame)}.mp-day-tab--add{border:none}.mp-day-tab--add .mp-day-tab-btn{border-style:dashed;font-size:1.1rem;font-weight:700;padding:6px 16px;color:var(--tan-dark);min-width:40px;min-height:34px}.mp-day-tab--add .mp-day-tab-btn:hover{border-style:solid;background:#f4a4601a;border-color:var(--ember);color:var(--ember)}.mp-meal-section{margin-bottom:var(--space-md)}.mp-meal-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid rgba(168,139,91,.1);margin-bottom:var(--space-xs)}.mp-meal-icon{font-size:.9rem}.mp-meal-label{font-family:var(--font-body);font-size:.85rem;font-weight:700;color:var(--charcoal);flex:1}.mp-meal-count{font-family:var(--font-body);font-size:.7rem;font-weight:600;color:var(--charcoal-light);background:#0000000d;padding:1px 8px;border-radius:10px}.mp-meal-empty{font-family:var(--font-body);font-size:.8rem;font-style:italic;color:var(--charcoal-light);opacity:.5;padding:var(--space-xs) var(--space-sm)}.mp-recipe-list{padding:0 var(--space-xs)}.mp-recipe-row{display:flex;align-items:center;padding:5px var(--space-sm);border-radius:var(--radius-sm);transition:background .15s ease}.mp-recipe-row:hover{background:#00000006}.mp-recipe-name{font-family:var(--font-body);font-size:.85rem;color:var(--charcoal);flex:1}.mp-recipe-remove{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:none;color:var(--charcoal-light);cursor:pointer;opacity:0;transition:all .15s ease;padding:0}.mp-recipe-row:hover .mp-recipe-remove{opacity:.5}.mp-recipe-remove:hover{opacity:1!important;background:#e85d3a14;color:var(--flame)}.mp-meal-add-btn{display:flex;align-items:center;gap:2px;border-radius:12px;border:1px dashed rgba(168,139,91,.3);background:none;color:var(--tan-dark);font-family:var(--font-body);font-size:.72rem;font-weight:600;cursor:pointer;transition:all .15s ease;padding:3px 10px;margin:4px 0 0 var(--space-xs);white-space:nowrap}.mp-meal-add-btn:hover{border-color:var(--ember);border-style:solid;color:var(--ember);background:#f4a46014}.mp-inline-add{padding:var(--space-xs) var(--space-sm);display:flex;flex-direction:column;gap:4px}.mp-inline-add-search{width:100%;padding:6px 10px;font-family:var(--font-body);font-size:.82rem;border:1px solid rgba(168,139,91,.25);border-radius:var(--radius-sm);background:#fff9;color:var(--charcoal)}.mp-inline-add-search:focus{border-color:var(--ember);box-shadow:0 0 0 2px #f4a4601f}.mp-inline-add-results{display:flex;flex-direction:column;border:1px solid rgba(168,139,91,.15);border-radius:var(--radius-sm);background:#ffffffb3;max-height:200px;overflow-y:auto;scrollbar-width:thin}.mp-inline-add-option{padding:7px 10px;font-family:var(--font-body);font-size:.82rem;color:var(--charcoal);background:none;border:none;border-bottom:1px solid rgba(168,139,91,.06);cursor:pointer;text-align:left;transition:background .1s ease}.mp-inline-add-option:last-child{border-bottom:none}.mp-inline-add-option:hover{background:#f4a4601a}.mp-inline-add-empty{font-family:var(--font-body);font-size:.78rem;font-style:italic;color:var(--charcoal-light);padding:4px 0}.mp-inline-add-cancel{font-family:var(--font-body);font-size:.75rem;color:var(--charcoal-light);background:none;border:none;cursor:pointer;padding:2px 0;align-self:flex-start;text-decoration:underline;text-underline-offset:2px}.mp-inline-add-cancel:hover{color:var(--charcoal)}.mp-no-days{text-align:center;padding:var(--space-xl);font-style:italic;color:var(--charcoal-light)}.mp-book{display:flex;height:100%;min-height:420px;overflow:hidden}.mp-book-page{flex:1;padding:var(--space-lg);display:flex;flex-direction:column;background:linear-gradient(to right,#faf5eb80,#faf5eb33);min-height:0;overflow:hidden}.mp-book-left{border-right:none;box-shadow:inset -8px 0 12px -8px #0000000f}.mp-book-right{box-shadow:inset 8px 0 12px -8px #0000000f;position:relative}.mp-book-right:after{content:"";position:absolute;bottom:0;right:0;width:30px;height:30px;background:linear-gradient(225deg,rgba(237,228,208,.98) 0%,rgba(237,228,208,.98) 50%,transparent 50%);box-shadow:-2px -2px 4px #0000000d;border-radius:0;pointer-events:none}.mp-book-spine{width:24px;flex-shrink:0;background:linear-gradient(to right,var(--tan-dark),rgba(139,115,70,.9),var(--tan-dark));box-shadow:inset 2px 0 4px #0003,inset -2px 0 4px #0003}.mp-book-search{width:100%;padding:8px 12px;font-family:var(--font-body);font-size:.85rem;border:1px solid rgba(168,139,91,.25);border-radius:var(--radius-sm);background:#ffffff80;color:var(--charcoal);margin-bottom:var(--space-sm);transition:border-color .2s ease}.mp-book-search:focus{border-color:var(--ember);box-shadow:0 0 0 2px #f4a46026}.mp-book-search::placeholder{color:var(--tan-deep);font-style:italic}.mp-book-filters{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:var(--space-sm)}.mp-filter-pill{font-family:var(--font-body);font-size:.7rem;font-weight:600;padding:3px 10px;border-radius:12px;border:1px solid rgba(168,139,91,.2);background:#fff6;color:var(--charcoal-light);cursor:pointer;transition:all .15s ease;text-transform:capitalize}.mp-filter-pill:hover{border-color:var(--ember);color:var(--ember)}.mp-filter-pill--active{background:var(--ember);border-color:var(--ember);color:#fff}.mp-filter-pill--active:hover{background:var(--ember-bright);color:#fff}.mp-filter-pill--theme{border-color:#b8a5cc4d}.mp-filter-pill--theme:hover{border-color:var(--lavender-deep);color:var(--lavender-deep)}.mp-filter-pill--theme.mp-filter-pill--active{background:var(--lavender-deep);border-color:var(--lavender-deep)}.mp-book-list{flex:1;overflow-y:auto;scrollbar-width:thin}.mp-book-list::-webkit-scrollbar{width:4px}.mp-book-list::-webkit-scrollbar-thumb{background:#a88b5b33;border-radius:2px}.mp-book-empty{font-family:var(--font-body);font-size:.85rem;font-style:italic;color:var(--charcoal-light);text-align:center;padding:var(--space-lg)}.mp-book-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:8px 10px;border-radius:var(--radius-sm);background:none;border:none;cursor:pointer;text-align:left;transition:background .15s ease}.mp-book-item:hover{background:#00000008}.mp-book-item--selected{background:#f4a4601a;border-left:3px solid var(--ember)}.mp-book-item-name{font-family:var(--font-body);font-size:.85rem;color:var(--charcoal);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-book-item-badge{font-family:var(--font-body);font-size:.65rem;font-weight:600;padding:2px 8px;border-radius:8px;background:#f4a4601f;color:var(--ember-bright);text-transform:capitalize;flex-shrink:0}.mp-book-detail{display:flex;flex-direction:column;gap:var(--space-md);flex:1;overflow-y:auto;scrollbar-width:thin;min-height:0}.mp-book-detail-name{font-family:var(--font-heading);font-size:1.3rem;color:var(--charcoal)}.mp-book-detail-desc{font-family:var(--font-body);font-size:.9rem;color:var(--charcoal-light);line-height:1.5}.mp-book-detail-meta{display:flex;align-items:center;gap:var(--space-sm);font-family:var(--font-body);font-size:.8rem;color:var(--charcoal-light)}.mp-book-ingredients{flex:1;overflow-y:auto}.mp-book-ingredients-title{font-family:var(--font-body);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--tan-dark);margin-bottom:var(--space-xs)}.mp-book-ingredients-list{list-style:none;padding:0}.mp-book-ingredients-list li{font-family:var(--font-body);font-size:.85rem;color:var(--charcoal);padding:3px 0;border-bottom:1px solid rgba(168,139,91,.06)}.mp-book-ing-qty{font-weight:600;color:var(--charcoal-light)}.mp-book-add-area{flex-shrink:0;padding-top:var(--space-md);border-top:1px solid rgba(168,139,91,.1)}.mp-add-to-plan-btn{width:100%;background:linear-gradient(135deg,var(--ember),var(--flame))!important;box-shadow:0 4px 12px #f4a4604d!important}.mp-add-to-plan-btn:hover:not(:disabled){box-shadow:0 6px 20px #f4a46066!important}.mp-add-popover{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:#fff9;border:1px solid rgba(168,139,91,.2);border-radius:var(--radius-md)}.mp-add-select{width:100%;padding:8px 10px;font-family:var(--font-body);font-size:.85rem;border:1px solid var(--tan-deep);border-radius:var(--radius-sm);background:#ffffffb3;color:var(--charcoal);cursor:pointer}.mp-add-popover-actions{display:flex;gap:var(--space-sm)}.mp-add-confirm,.mp-add-cancel{flex:1;padding:8px!important;font-size:.85rem!important}.mp-add-confirm{background:linear-gradient(135deg,var(--ember),var(--flame))!important}.mp-book-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--space-md);color:var(--charcoal-light);font-style:italic;font-size:.9rem;text-align:center}.mp-book-no-plan{font-family:var(--font-body);font-size:.85rem;font-style:italic;color:var(--charcoal-light);text-align:center;padding:var(--space-sm)}.mp-shopping{padding:var(--space-md) var(--space-xl) var(--space-xl);overflow-y:auto;height:100%}.mp-shopping-empty{display:flex;align-items:center;justify-content:center;min-height:200px;font-family:var(--font-body);font-style:italic;color:var(--charcoal-light);padding:var(--space-xl);text-align:center}.mp-shopping-progress{margin-bottom:var(--space-lg)}.mp-shopping-progress-text{font-family:var(--font-body);font-size:.8rem;font-weight:600;color:var(--charcoal-light);margin-bottom:var(--space-xs)}.mp-shopping-progress-bar{height:6px;background:#0000000f;border-radius:3px;overflow:hidden}.mp-shopping-progress-fill{height:100%;background:linear-gradient(90deg,var(--sage-deep),var(--sage));border-radius:3px;transition:width .5s ease}.mp-shopping-category{margin-bottom:var(--space-md)}.mp-shopping-category-title{font-family:var(--font-body);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--tan-dark);padding:var(--space-xs) 0 4px;border-bottom:1px solid rgba(168,139,91,.1);margin-bottom:2px}.mp-shopping-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);transition:background .15s ease}.mp-shopping-item:hover{background:#00000005}.mp-shopping-item--done .mp-shopping-name{text-decoration:line-through;opacity:.5}.mp-shopping-check{width:18px;height:18px;border-radius:4px;border:2px solid var(--tan-deep);background:#fff9;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0;padding:0;color:#fff}.mp-shopping-check:hover{border-color:var(--sage-deep)}.mp-shopping-check--checked{background:var(--sage-deep);border-color:var(--sage-deep)}.mp-shopping-name{font-family:var(--font-body);font-size:.85rem;color:var(--charcoal);flex:1;text-transform:capitalize}.mp-shopping-qty{font-family:var(--font-body);font-size:.75rem;font-weight:600;color:var(--charcoal-light);flex-shrink:0}.mp-shopping-status{font-family:var(--font-body);font-size:.65rem;font-weight:700;padding:2px 8px;border-radius:8px;flex-shrink:0;text-transform:uppercase;letter-spacing:.03em}.mp-status--done{background:#8fb08a26;color:var(--sage-dark)}.mp-status--partial{background:#f4a46026;color:var(--ember-bright)}.mp-status--pending{background:#0000000d;color:var(--charcoal-light)}.mp-status--no-longer{background:#d4949a26;color:var(--rose-deep)}.mp-shopping-name--struck{text-decoration:line-through;opacity:.5}.mp-shopping-reset{margin-top:var(--space-lg);display:flex;justify-content:center}.mp-reset-btn{font-size:.8rem!important;padding:8px 16px!important}.mp-reset-confirm{display:flex;align-items:center;gap:var(--space-sm);font-family:var(--font-body);font-size:.85rem;color:var(--charcoal)}.mp-reset-yes,.mp-reset-no{padding:6px 14px!important;font-size:.8rem!important}.mp-template-divider{display:flex;align-items:center;gap:var(--space-sm);width:100%;color:var(--charcoal-light);font-size:.8rem;font-style:italic}.mp-template-divider:before,.mp-template-divider:after{content:"";flex:1;height:1px;background:#a88b5b33}.mp-load-template-btn{font-size:.85rem!important;padding:8px 20px!important}.mp-template-picker{display:flex;flex-direction:column;gap:var(--space-xs);width:100%;padding:var(--space-md);background:#a88b5b0f;border:1px solid rgba(168,139,91,.15);border-radius:var(--radius-md)}.mp-template-picker-title{font-family:var(--font-body);font-size:.8rem;font-weight:700;color:var(--charcoal-light);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.mp-template-option{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid rgba(168,139,91,.2);background:#fff6;text-align:left;cursor:pointer;transition:all .15s ease}.mp-template-option:hover:not(:disabled){background:#f4a4601a;border-color:var(--ember)}.mp-template-option:disabled{opacity:.5;cursor:wait}.mp-template-option-name{font-family:var(--font-body);font-size:.9rem;font-weight:600;color:var(--charcoal);flex:1;min-width:0}.mp-template-preview-icon{display:flex;align-items:center;justify-content:center;color:var(--charcoal-light);flex-shrink:0;transition:color .15s ease}.mp-template-option:hover .mp-template-preview-icon{color:var(--ember)}.mp-template-cancel{font-size:.85rem!important;padding:10px!important;flex:1;margin-top:var(--space-xs)}.mp-template-link{font-family:var(--font-body);font-size:.78rem;font-weight:600;color:var(--charcoal-light);background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);transition:all .15s ease;text-decoration:underline;text-decoration-style:dashed;text-underline-offset:3px}.mp-template-link:hover{color:var(--ember)}.mp-save-template-form{display:flex;align-items:center;gap:var(--space-xs);width:100%}.mp-save-template-input{flex:1;padding:6px 10px;font-family:var(--font-body);font-size:.82rem;border:1px solid rgba(168,139,91,.3);border-radius:var(--radius-sm);background:#fff9;color:var(--charcoal)}.mp-save-template-input:focus{border-color:var(--ember);box-shadow:0 0 0 2px #f4a46026}.mp-save-template-confirm,.mp-save-template-cancel{padding:6px 12px!important;font-size:.8rem!important;flex-shrink:0}.mp-save-template-confirm{background:linear-gradient(135deg,var(--ember),var(--flame))!important}.mp-template-links{display:flex;align-items:center;gap:var(--space-xs)}.mp-template-sep{color:#a88b5b4d;font-size:.8rem}.mp-replace-template{width:100%}.mp-template-picker--inline{max-width:100%}.mp-replace-confirm{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:#e85d3a0a;border:1px solid rgba(232,93,58,.15);border-radius:var(--radius-md)}.mp-replace-warning{font-family:var(--font-body);font-size:.85rem;color:var(--flame);font-weight:600;line-height:1.4}.mp-replace-confirm-actions{display:flex;gap:var(--space-sm)}.mp-replace-yes,.mp-replace-no{padding:8px 16px!important;font-size:.82rem!important}.mp-template-preview{display:flex;flex-direction:column;gap:var(--space-md);width:100%;padding:var(--space-md);background:#a88b5b0f;border:1px solid rgba(168,139,91,.15);border-radius:var(--radius-md)}.mp-template-preview-header{display:flex;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap}.mp-template-preview-name{font-family:var(--font-heading);font-size:1.1rem;color:var(--charcoal)}.mp-template-preview-meta{font-family:var(--font-body);font-size:.78rem;color:var(--charcoal-light)}.mp-template-preview-days{display:flex;flex-direction:column;gap:var(--space-sm);max-height:260px;overflow-y:auto;scrollbar-width:thin}.mp-template-preview-day{padding:var(--space-sm) var(--space-md);background:#ffffff59;border:1px solid rgba(168,139,91,.12);border-radius:var(--radius-sm)}.mp-template-preview-day-label{font-family:var(--font-body);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ember);display:block;margin-bottom:4px}.mp-template-preview-empty{font-family:var(--font-body);font-size:.8rem;font-style:italic;color:var(--charcoal-light);opacity:.5}.mp-template-preview-meals{display:flex;flex-direction:column;gap:var(--space-sm)}.mp-template-preview-meal-group{display:flex;align-items:baseline;gap:var(--space-lg)}.mp-template-preview-meal-header{display:flex;align-items:center;gap:4px;width:90px;flex-shrink:0}.mp-template-preview-meal-icon{font-size:.75rem}.mp-template-preview-meal-label{font-family:var(--font-body);font-size:.72rem;font-weight:700;color:var(--charcoal-light);text-transform:uppercase;letter-spacing:.04em}.mp-template-preview-meal-recipes{display:flex;flex-direction:column;gap:1px;flex:1}.mp-template-preview-recipe-name{font-family:var(--font-body);font-size:.85rem;color:var(--charcoal)}.mp-template-preview-actions{display:flex;gap:var(--space-sm)}@media(max-width:700px){.meal-plan-modal{height:92vh}.mp-header{flex-wrap:wrap;gap:var(--space-sm);padding:var(--space-sm) var(--space-md)}.mp-tabs{order:3;width:100%;justify-content:center}.mp-book{flex-direction:column;min-height:auto}.mp-book-spine{width:100%;height:6px}.mp-book-left{box-shadow:none;max-height:200px}.mp-book-right{box-shadow:none}.mp-book-right:after{display:none}.mp-overview,.mp-shopping{padding:var(--space-sm) var(--space-md) var(--space-md)}}.itinerary-modal{max-height:85vh;display:flex;flex-direction:column;text-align:left}.itinerary-header{text-align:center;flex-shrink:0}.itinerary-header-icon{margin-bottom:var(--space-sm)}.itinerary-header .modal-title{margin-bottom:var(--space-xs)}.itinerary-body{flex:1;overflow-y:auto;min-height:0;padding:var(--space-sm) var(--space-xs);margin:0 calc(var(--space-xs) * -1)}.itinerary-body::-webkit-scrollbar{width:6px}.itinerary-body::-webkit-scrollbar-track{background:transparent}.itinerary-body::-webkit-scrollbar-thumb{background:var(--tan-deep);border-radius:3px}.itinerary-loading{display:flex;justify-content:center;gap:var(--space-sm);padding:var(--space-xl) 0}.itinerary-loading-dot{width:8px;height:8px;border-radius:50%;background:var(--tan-deep);animation:itinerary-bounce 1.2s ease infinite}.itinerary-loading-dot:nth-child(2){animation-delay:.15s}.itinerary-loading-dot:nth-child(3){animation-delay:.3s}@keyframes itinerary-bounce{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1.1)}}.itinerary-empty{display:flex;flex-direction:column;align-items:center;padding:var(--space-xl) var(--space-md);text-align:center}.itinerary-empty-icon{opacity:.5;margin-bottom:var(--space-md)}.itinerary-empty-text{font-family:var(--font-body);font-style:italic;font-size:.95rem;color:var(--charcoal-light);line-height:1.6;max-width:280px}.itinerary-timeline{display:flex;flex-direction:column;gap:var(--space-md)}.itinerary-day{position:relative}.itinerary-day-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:1px solid rgba(168,139,91,.2)}.itinerary-day-date{font-family:var(--font-display);font-size:.85rem;font-weight:700;color:var(--charcoal);letter-spacing:.03em}.itinerary-day-count{font-size:.75rem;color:var(--charcoal-light);opacity:.7}.itinerary-event{position:relative;margin-left:var(--space-sm);border-left:2px solid var(--tan-deep);padding-left:0;margin-bottom:2px;transition:background .2s ease;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.itinerary-event:last-child{margin-bottom:0}.itinerary-event:hover{background:#a88b5b0f}.itinerary-event.expanded{background:#a88b5b14;border-left-color:var(--sage-deep)}.itinerary-event-main{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-sm) var(--space-sm) var(--space-md);min-height:44px}.itinerary-event-time-col{display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0;min-width:72px}.itinerary-event-dot{width:7px;height:7px;border-radius:50%;background:var(--sage);border:1.5px solid var(--sage-deep);position:absolute;left:-5px}.itinerary-event-time{font-size:.78rem;font-weight:600;color:var(--charcoal-light);font-variant-numeric:tabular-nums}.itinerary-event-content{flex:1;min-width:0}.itinerary-event-title{font-size:.92rem;font-weight:600;color:var(--charcoal);display:block;line-height:1.3}.itinerary-event-expand-hint{font-size:.72rem;color:var(--charcoal-light);opacity:.5;font-style:italic}.itinerary-event-actions{display:flex;gap:4px;flex-shrink:0;opacity:0;transition:opacity .2s ease}.itinerary-event:hover .itinerary-event-actions{opacity:1}.itinerary-action-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:#0000000a;color:var(--charcoal-light);transition:all .2s ease}.itinerary-action-btn:hover{background:#00000014;color:var(--charcoal)}.itinerary-action-btn--danger:hover{background:#e85d3a1f;color:var(--flame)}.itinerary-action-btn:disabled{opacity:.4;cursor:not-allowed}.itinerary-event-details{padding:0 var(--space-sm) var(--space-sm) calc(var(--space-md) + 72px + var(--space-sm));animation:fade-in .2s ease}.itinerary-event-desc{font-size:.88rem;color:var(--charcoal);line-height:1.5;margin-bottom:var(--space-xs)}.itinerary-event-notes{font-size:.82rem;color:var(--charcoal-light);line-height:1.5;display:flex;align-items:flex-start;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:#a88b5b14;border-radius:var(--radius-sm)}.itinerary-notes-icon{flex-shrink:0;margin-top:2px;opacity:.6}.itinerary-form{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-xs) 0}.itinerary-form-title{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--charcoal);margin-bottom:var(--space-xs)}.itinerary-textarea{resize:vertical;min-height:48px;max-height:120px;font-family:var(--font-body);line-height:1.4}.itinerary-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding-top:var(--space-md);border-top:1px solid rgba(168,139,91,.15);flex-shrink:0}.itinerary-add-btn{display:flex;align-items:center;gap:var(--space-xs);margin-right:auto}.assign-modal{height:80vh;display:flex;flex-direction:column;overflow:hidden;text-align:left;padding:0}.assign-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xl) var(--space-xl) var(--space-lg);border-bottom:1px solid rgba(168,139,91,.15);position:relative;z-index:1}.assign-modal-header-left{display:flex;align-items:center;gap:var(--space-md)}.assign-modal-icon{flex-shrink:0;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.assign-modal-title{font-family:var(--font-display);font-size:1.2rem;font-weight:700;color:var(--charcoal);letter-spacing:.02em}.assign-modal-subtitle{font-family:var(--font-body);font-size:.8rem;color:var(--charcoal-light);font-style:italic;margin-top:2px}.assign-tabs{display:flex;gap:4px;padding:var(--space-sm) var(--space-xl) var(--space-sm);position:relative;z-index:1}.assign-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-xs);font-family:var(--font-body);font-size:.85rem;font-weight:600;padding:10px 16px;border-radius:var(--radius-sm) var(--radius-sm) 0 0;border:1px solid rgba(168,139,91,.2);border-bottom:none;background:#fff3;color:var(--charcoal-light);cursor:pointer;transition:all .2s ease}.assign-tab:hover{background:#fff6;color:var(--charcoal)}.assign-tab--active{background:#ffffff80;border-color:#a88b5b4d;color:var(--charcoal);box-shadow:0 -2px 8px #0000000a}.assign-tab-icon{font-size:1rem;line-height:1}.assign-modal-body{flex:1;overflow-y:auto;padding:var(--space-md) var(--space-xl) var(--space-xl);position:relative;z-index:1}.assign-modal-body::-webkit-scrollbar{width:6px}.assign-modal-body::-webkit-scrollbar-track{background:transparent}.assign-modal-body::-webkit-scrollbar-thumb{background:#a88b5b33;border-radius:3px}.assign-modal-body::-webkit-scrollbar-thumb:hover{background:#a88b5b59}.assign-unassigned{background:#e85d3a0d;border:1px dashed rgba(232,93,58,.2);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md)}.assign-unassigned-label{font-family:var(--font-body);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--charcoal-light);opacity:.7;display:block;margin-bottom:var(--space-xs)}.assign-unassigned-list{display:flex;flex-wrap:wrap;gap:var(--space-md)}.assign-unassigned-member{display:flex;flex-direction:column;align-items:center;gap:2px}.assign-unassigned-name{font-family:var(--font-body);font-size:.68rem;color:var(--charcoal-light);max-width:56px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.assign-card{background:#ffffff73;border:1px solid rgba(168,139,91,.2);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-sm);position:relative;transition:all .2s ease;box-shadow:0 2px 8px #0000000a}.assign-card:hover{box-shadow:0 4px 16px #00000014;border-color:#a88b5b4d}.assign-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.assign-card-name{font-family:var(--font-body);font-size:.95rem;font-weight:700;color:var(--charcoal)}.assign-card-edit-name{flex:1;min-width:0;font-family:var(--font-body);font-size:.9rem;padding:4px 8px;border:1px solid var(--tan-deep);border-radius:4px;background:#ffffffb3;color:var(--charcoal)}.assign-card-edit-name:focus{border-color:var(--lavender-deep);box-shadow:0 0 0 2px #b8a5cc33}.assign-card-actions{display:flex;gap:4px;flex-shrink:0;opacity:0;transition:opacity .2s ease}.assign-card:hover .assign-card-actions{opacity:1}.assign-card-header:has(.assign-card-edit-name) .assign-card-actions{opacity:1}.assign-action-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:#0000000a;color:var(--charcoal-light);transition:all .2s ease}.assign-action-btn:hover{background:#00000014;color:var(--charcoal)}.assign-action-btn--danger:hover{background:#e85d3a1f;color:var(--flame)}.assign-save-btn,.assign-cancel-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:.85rem;font-weight:700;cursor:pointer;padding:0;transition:all .15s ease}.assign-save-btn{background:var(--sage-deep);color:#fff}.assign-save-btn:hover{background:var(--sage-dark)}.assign-cancel-btn{background:#0000000f;color:var(--charcoal-light)}.assign-cancel-btn:hover{background:#0000001a}.assign-card-owner{font-family:var(--font-body);font-size:.72rem;color:var(--charcoal-light);opacity:.7;font-style:italic}.assign-card-occupancy{display:flex;align-items:center;gap:var(--space-sm);margin:var(--space-sm) 0}.assign-card-spots{font-family:var(--font-body);font-size:.78rem;font-weight:600;color:var(--charcoal-light);white-space:nowrap}.assign-occupancy-bar{flex:1;height:6px;background:var(--tan);border-radius:3px;overflow:hidden}.assign-occupancy-fill{height:100%;background:linear-gradient(90deg,var(--sage-deep),var(--sage));border-radius:3px;transition:width .4s ease}.assign-card-edit-occupancy{display:flex;align-items:center;gap:var(--space-sm);width:100%}.assign-card-edit-label,.assign-create-label{font-family:var(--font-body);font-size:.8rem;font-weight:600;color:var(--charcoal-light);white-space:nowrap}.assign-occupancy-stepper{display:flex;align-items:center;gap:2px}.assign-qty-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;background:#0000000d;color:var(--charcoal);font-size:.9rem;font-weight:700;cursor:pointer;padding:0;transition:background .15s ease;line-height:1}.assign-qty-btn:hover:not(:disabled){background:#0000001a}.assign-qty-btn:disabled{opacity:.3;cursor:not-allowed}.assign-qty-value{font-family:var(--font-body);font-size:.85rem;font-weight:600;color:var(--charcoal);min-width:24px;text-align:center}.assign-card-members{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--space-sm)}.assign-member{display:flex;align-items:center;gap:8px;padding:3px 6px;border-radius:var(--radius-sm);transition:background .15s ease}.assign-member:hover{background:#00000005}.assign-member:hover .assign-member-remove{opacity:1}.assign-mini-avatar{flex-shrink:0;filter:drop-shadow(0 1px 2px rgba(0,0,0,.15))}.assign-member-name{font-family:var(--font-body);font-size:.82rem;color:var(--charcoal);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assign-member-badge{font-family:var(--font-body);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tan-dark);background:#a88b5b1a;padding:1px 6px;border-radius:8px}.assign-member-remove{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:4px;background:none;color:var(--charcoal-light);cursor:pointer;transition:all .15s ease;padding:0;opacity:0;flex-shrink:0}.assign-member-remove:hover{background:#e85d3a1a;color:var(--flame)}.assign-card-footer{display:flex;justify-content:flex-end;gap:var(--space-sm)}.assign-join-btn{font-family:var(--font-body);font-size:.8rem;font-weight:600;padding:5px 16px;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--sage-deep),var(--sage-dark));color:#fff;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #5a7a5633}.assign-join-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #5a7a564d}.assign-leave-btn{font-family:var(--font-body);font-size:.8rem;font-weight:600;padding:5px 16px;border-radius:var(--radius-sm);background:transparent;color:var(--charcoal-light);border:1px solid var(--tan-deep);cursor:pointer;transition:all .2s ease}.assign-leave-btn:hover{background:#0000000a;border-color:var(--charcoal-light)}.assign-full-badge{font-family:var(--font-body);font-size:.75rem;font-weight:600;color:var(--charcoal-light);opacity:.6;font-style:italic}.assign-create-form{background:#fff6;border:1px dashed rgba(168,139,91,.3);border-radius:var(--radius-md);padding:var(--space-md);margin-top:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-sm);animation:gear-section-expand .2s ease}.assign-create-title{font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--charcoal)}.assign-create-input{width:100%;font-family:var(--font-body);font-size:.88rem;padding:8px 12px;border:1px solid var(--tan-deep);border-radius:var(--radius-sm);background:#fff9;color:var(--charcoal);transition:all .2s ease}.assign-create-input:focus{border-color:var(--lavender-deep);box-shadow:0 0 0 2px #b8a5cc33}.assign-create-input::placeholder{color:var(--tan-deep);font-style:italic}.assign-create-occupancy{display:flex;align-items:center;gap:var(--space-sm)}.assign-create-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-xs)}.assign-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);border-top:1px solid rgba(168,139,91,.15);position:relative;z-index:1;flex-shrink:0}.assign-create-btn{display:flex;align-items:center;gap:var(--space-xs);margin-right:auto}.assign-empty{display:flex;flex-direction:column;align-items:center;padding:var(--space-xl) var(--space-md);text-align:center}.assign-empty-icon{opacity:.5;margin-bottom:var(--space-md)}.assign-empty-text{font-family:var(--font-body);font-style:italic;font-size:.95rem;color:var(--charcoal-light);line-height:1.6;max-width:280px}.assign-loading{text-align:center;padding:var(--space-2xl) var(--space-lg);color:var(--charcoal-light);font-style:italic;font-size:.9rem}.assign-loading-tent{width:32px;height:32px;margin:0 auto var(--space-md);position:relative;animation:gear-pack-bob 1.2s ease-in-out infinite}.assign-loading-tent:before{content:"";position:absolute;left:50%;bottom:0;transform:translate(-50%);width:0;height:0;border-left:16px solid transparent;border-right:16px solid transparent;border-bottom:28px solid var(--rose)}.assign-loading-tent:after{content:"";position:absolute;left:50%;bottom:0;transform:translate(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:12px solid var(--rose-deep)}.assign-error{font-family:var(--font-body);font-size:.82rem;color:var(--flame);background:#e85d3a14;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);margin-bottom:var(--space-sm);border:1px solid rgba(232,93,58,.15)}.assign-add-member-btn{font-family:var(--font-body);font-size:.78rem;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid rgba(168,139,91,.3);background:#a88b5b14;color:var(--tan-deep);cursor:pointer;transition:all .15s ease}.assign-add-member-btn:hover{background:#a88b5b2e}.assign-add-member-panel{background:#a88b5b14;border-top:1px solid rgba(168,139,91,.2);margin:var(--space-sm) calc(-1 * var(--space-md)) calc(-1 * var(--space-md));padding:var(--space-sm) var(--space-md) var(--space-md);border-radius:0 0 var(--radius-md) var(--radius-md)}.assign-add-member-heading{font-family:var(--font-body);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--tan-deep);display:block;margin-bottom:var(--space-xs)}.assign-add-member-list{display:flex;flex-direction:column;gap:2px}.assign-add-member-option{display:flex;align-items:center;gap:var(--space-xs);padding:5px var(--space-sm);border:none;background:transparent;cursor:pointer;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.82rem;color:var(--text-primary);transition:background .15s ease;text-align:left}.assign-add-member-option .assign-mini-avatar{width:22px;height:22px;flex-shrink:0}.assign-add-member-option:hover:not(:disabled){background:#a88b5b26}.assign-add-member-option--taken{opacity:.4;cursor:not-allowed;filter:grayscale(.6)}.assign-add-member-name{flex:1}.assign-add-member-group{font-size:.72rem;font-style:italic;color:var(--charcoal-light)}.assign-add-member-empty{font-family:var(--font-body);font-size:.78rem;color:var(--text-secondary);font-style:italic;padding:var(--space-xs) var(--space-sm)}.assign-add-error{font-family:var(--font-body);font-size:.78rem;color:var(--flame);background:#e85d3a1a;padding:4px var(--space-sm);border-radius:var(--radius-sm);margin-bottom:var(--space-xs);border:1px solid rgba(232,93,58,.15)}@media(max-width:600px){.assign-modal{max-height:90vh}.assign-modal-header{padding:var(--space-md) var(--space-md)}.assign-modal-body{padding:var(--space-sm) var(--space-md) var(--space-lg)}.assign-modal-footer{padding:var(--space-sm) var(--space-md)}.assign-tabs{padding:var(--space-sm) var(--space-md) var(--space-sm)}}.logbook-modal{max-height:85vh;display:flex;flex-direction:column;text-align:left}.logbook-header{text-align:center;flex-shrink:0}.logbook-header-icon{margin-bottom:var(--space-sm)}.logbook-header .modal-title{margin-bottom:var(--space-xs)}.logbook-tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-md);border-bottom:1px solid rgba(168,139,91,.2);flex-shrink:0}.logbook-tab{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);font-family:var(--font-body);font-size:.88rem;font-weight:600;color:var(--charcoal-light);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;transition:all .2s ease}.logbook-tab:hover{color:var(--charcoal)}.logbook-tab--active{color:var(--charcoal);border-bottom-color:var(--sage-deep)}.logbook-body{flex:1;overflow-y:auto;min-height:0;padding:var(--space-xs)}.logbook-body::-webkit-scrollbar{width:6px}.logbook-body::-webkit-scrollbar-track{background:transparent}.logbook-body::-webkit-scrollbar-thumb{background:var(--tan-deep);border-radius:3px}.logbook-loading{display:flex;justify-content:center;gap:var(--space-sm);padding:var(--space-xl) 0}.logbook-loading-dot{width:8px;height:8px;border-radius:50%;background:var(--tan-deep);animation:logbook-bounce 1.2s ease infinite}.logbook-loading-dot:nth-child(2){animation-delay:.15s}.logbook-loading-dot:nth-child(3){animation-delay:.3s}@keyframes logbook-bounce{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1.1)}}.logbook-empty{display:flex;flex-direction:column;align-items:center;padding:var(--space-xl) var(--space-md);text-align:center}.logbook-empty-icon{opacity:.5;margin-bottom:var(--space-md)}.logbook-empty-text{font-family:var(--font-body);font-style:italic;font-size:.95rem;color:var(--charcoal-light);line-height:1.6;max-width:280px}.logbook-faqs{display:flex;flex-direction:column;gap:var(--space-md)}.logbook-faq-list{display:flex;flex-direction:column;gap:var(--space-sm)}.logbook-faq-item{background:#ffffff80;border:1px solid rgba(168,139,91,.15);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md)}.logbook-faq-question{display:flex;align-items:flex-start;gap:var(--space-sm)}.logbook-faq-q-mark{font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--sage-deep);flex-shrink:0;margin-top:1px}.logbook-faq-q-content{flex:1;min-width:0}.logbook-faq-q-text{display:block;font-size:.92rem;font-weight:600;color:var(--charcoal);line-height:1.4}.logbook-faq-meta{display:block;font-size:.75rem;color:var(--charcoal-light);opacity:.7;margin-top:2px}.logbook-faq-answer{display:flex;align-items:flex-start;gap:var(--space-sm);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid rgba(168,139,91,.1)}.logbook-faq-a-mark{font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--ember);flex-shrink:0;margin-top:1px}.logbook-faq-a-content{flex:1;min-width:0}.logbook-faq-a-text{display:block;font-size:.88rem;color:var(--charcoal);line-height:1.5}.logbook-faq-awaiting{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid rgba(168,139,91,.1)}.logbook-faq-awaiting-text{font-size:.82rem;font-style:italic;color:var(--charcoal-light);opacity:.6}.logbook-answer-btn{font-family:var(--font-body);font-size:.8rem;font-weight:600;padding:4px 12px;border-radius:var(--radius-sm);border:none;background:linear-gradient(135deg,var(--sage-deep),var(--sage-dark));color:#fff;cursor:pointer;transition:all .2s ease}.logbook-answer-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #5a7a564d}.logbook-edit-answer-btn{font-family:var(--font-body);font-size:.75rem;font-weight:600;padding:2px 8px;margin-left:var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--sage-deep);background:transparent;color:var(--sage-deep);cursor:pointer;transition:all .2s ease}.logbook-edit-answer-btn:hover{background:var(--sage-deep);color:#fff}.logbook-faq-answer-form{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid rgba(168,139,91,.1);display:flex;flex-direction:column;gap:var(--space-sm)}.logbook-faq-answer-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.logbook-ask-form{display:flex;gap:var(--space-sm);align-items:center;padding-top:var(--space-sm);border-top:1px solid rgba(168,139,91,.15)}.logbook-ask-form .modal-input{flex:1}.logbook-journal{display:flex;flex-direction:column;gap:var(--space-md)}.logbook-page{background:#ffffff80;border:1px solid rgba(168,139,91,.15);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);min-height:200px;position:relative}.logbook-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid rgba(168,139,91,.15)}.logbook-page-number{font-family:var(--font-display);font-size:.85rem;font-weight:700;color:var(--charcoal)}.logbook-page-author{font-size:.78rem;color:var(--charcoal-light);font-style:italic}.logbook-page-content{display:flex;flex-direction:column;gap:var(--space-sm)}.logbook-page-text{font-size:.92rem;color:var(--charcoal);line-height:1.7;white-space:pre-wrap}.logbook-page-date{font-size:.75rem;color:var(--charcoal-light);opacity:.6;text-align:right}.logbook-page-actions{position:absolute;top:var(--space-md);right:var(--space-md);display:flex;gap:4px;opacity:0;transition:opacity .2s ease}.logbook-page:hover .logbook-page-actions{opacity:1}.logbook-action-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:#0000000a;color:var(--charcoal-light);transition:all .2s ease;cursor:pointer;border:none}.logbook-action-btn:hover{background:#00000014;color:var(--charcoal)}.logbook-action-btn--danger:hover{background:#e85d3a1f;color:var(--flame)}.logbook-action-btn:disabled{opacity:.4;cursor:not-allowed}.logbook-page-nav{display:flex;align-items:center;justify-content:center;gap:var(--space-md)}.logbook-nav-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#0000000a;color:var(--charcoal-light);cursor:pointer;border:none;transition:all .2s ease}.logbook-nav-btn:hover:not(:disabled){background:#00000014;color:var(--charcoal)}.logbook-nav-btn:disabled{opacity:.3;cursor:not-allowed}.logbook-nav-info{font-size:.85rem;font-weight:600;color:var(--charcoal-light);min-width:60px;text-align:center}.logbook-edit-form,.logbook-new-entry-form{display:flex;flex-direction:column;gap:var(--space-sm)}.logbook-form-title{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--charcoal);margin-bottom:var(--space-xs)}.logbook-textarea{resize:vertical;min-height:48px;max-height:120px;font-family:var(--font-body);line-height:1.4}.logbook-textarea--large{min-height:120px;max-height:300px}.logbook-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding-top:var(--space-md);border-top:1px solid rgba(168,139,91,.15);flex-shrink:0}.logbook-add-btn{display:flex;align-items:center;gap:var(--space-xs);margin-right:auto}.profile-form{display:flex;flex-direction:column;gap:var(--space-md);text-align:left}.profile-form__input--readonly{background:#0000000a;color:var(--charcoal-light);cursor:default;border-color:#a88b5b26}.profile-form__input--readonly:focus{border-color:#a88b5b26;box-shadow:none}.profile-form__avatar-details{display:flex;flex-direction:column;gap:var(--space-sm)}.profile-form__avatar-placeholder{font-size:.85rem;font-style:italic;color:var(--charcoal-light);opacity:.6}.profile-form__error{font-size:.85rem;color:var(--flame)}.setup-modal{max-width:480px;text-align:center;position:relative}.setup-header{margin-bottom:var(--space-sm)}.setup-icon{margin-bottom:var(--space-sm);filter:drop-shadow(0 0 8px rgba(244,164,96,.3))}.setup-form{display:flex;flex-direction:column;gap:var(--space-md);text-align:left;position:relative}.plan-page{min-height:100vh;position:relative;overflow:hidden}.plan-header{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-xl) var(--space-md) 60px;background:#0a081466;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,248,231,.06)}.plan-back{display:flex;align-items:center;gap:var(--space-xs);font-family:var(--font-body);font-size:.85rem;font-weight:600;color:var(--parchment);background:none;border:none;cursor:pointer;padding:6px 12px;border-radius:var(--radius-xl);transition:all .3s ease;opacity:.7}.plan-back:hover{opacity:1;background:#ffffff0d}.plan-header-center{display:flex;align-items:center;gap:var(--space-sm)}.plan-header-icon{filter:drop-shadow(0 0 6px rgba(244,164,96,.3))}.plan-header-title{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--parchment);letter-spacing:.04em}.campsite-scene{position:relative;width:100%;height:100vh;display:flex;align-items:center;justify-content:center;padding-top:34vh}.campsite-center{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10}.campsite-invite-ghost{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:var(--space-xl);background:none;border:none;cursor:pointer;padding:0;opacity:.6;transition:opacity .3s ease,transform .3s ease}.campsite-invite-ghost:hover{opacity:1;transform:scale(1.08)}.campsite-invite-ghost:hover .invite-ghost-figure{filter:drop-shadow(0 0 12px rgba(255,248,231,.3))}.invite-ghost-figure{animation:gentle-bob 4s ease-in-out infinite;transition:filter .3s ease}.invite-ghost-label{font-family:var(--font-body);font-size:.65rem;font-weight:600;color:#fff8e766;background:#0003;padding:2px 8px;border-radius:8px;transition:color .3s ease}.campsite-invite-ghost:hover .invite-ghost-label{color:#fff8e7cc}.campfire-circle{position:absolute;width:0;height:0;z-index:15}.plan-header-user{display:flex;align-items:center;gap:var(--space-md)}.plan-user-btn{display:flex;align-items:center;gap:var(--space-sm);background:#ffffff0f;border:1px solid rgba(255,248,231,.12);border-radius:var(--radius-xl);padding:4px 14px 4px 4px;cursor:pointer;transition:all .3s ease}.plan-user-btn:hover{background:#ffffff1f;border-color:#fff8e740}.plan-user-avatar{flex-shrink:0}.plan-user-name{font-size:.85rem;font-family:var(--font-body);color:var(--lavender-light)}.plan-logout{font-size:.8rem;font-weight:600;font-family:var(--font-body);color:var(--rose);background:#e8b4b81a;border:1px solid rgba(232,180,184,.25);padding:6px 14px;border-radius:var(--radius-xl);cursor:pointer;transition:all .3s ease}.plan-logout:hover{background:#e8b4b833;border-color:#e8b4b866}.celestial-toggle{position:fixed;top:10%;right:33%;z-index:45;background:none;border:none;cursor:pointer;padding:0;opacity:.8;transition:opacity .3s ease,transform .3s ease,filter .3s ease;filter:drop-shadow(0 0 12px rgba(200,208,216,.15))}.celestial-toggle:hover{opacity:1;transform:scale(1.1);filter:drop-shadow(0 0 20px rgba(240,208,96,.3))}.campsite-join-btn{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:var(--space-xl);background:none;border:none;cursor:pointer;padding:0;transition:opacity .3s ease,transform .3s ease}.campsite-join-btn:hover:not(:disabled){transform:scale(1.1)}.campsite-join-btn:disabled{opacity:.5;cursor:not-allowed}.join-ghost-figure{animation:gentle-bob 3s ease-in-out infinite;filter:drop-shadow(0 0 8px rgba(139,195,128,.2));transition:filter .3s ease}.campsite-join-btn:hover .join-ghost-figure{filter:drop-shadow(0 0 16px rgba(139,195,128,.4))}.join-label{font-family:var(--font-body);font-size:.75rem;font-weight:700;color:var(--sage);background:#0000004d;padding:3px 12px;border-radius:10px;letter-spacing:.03em;transition:color .3s ease,background .3s ease}.campsite-join-btn:hover .join-label{color:var(--parchment);background:#5a7a5680}.plan-manage-btn{display:flex;align-items:center;gap:var(--space-xs);font-family:var(--font-body);font-size:.85rem;font-weight:600;color:var(--parchment);background:#ffffff14;border:1px solid rgba(255,248,231,.15);padding:6px 14px;border-radius:var(--radius-xl);cursor:pointer;transition:all .3s ease}.plan-manage-btn:hover{background:#ffffff26;border-color:#fff8e74d}.manage-plan-modal{text-align:left}.manage-plan-setting{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);padding:var(--space-md) 0}.manage-plan-setting-info{display:flex;flex-direction:column;gap:4px}.manage-plan-setting-label{font-family:var(--font-body);font-weight:700;font-size:.95rem;color:var(--charcoal)}.manage-plan-setting-desc{font-family:var(--font-body);font-size:.85rem;color:var(--charcoal-light);font-style:italic}.manage-plan-name-input{flex:1;font-family:var(--font-body);font-size:.9rem;padding:6px 10px;border:1px solid var(--tan-deep);border-radius:var(--radius-md);background:var(--parchment);color:var(--charcoal)}.manage-plan-name-input:focus{outline:none;border-color:var(--sage-deep);box-shadow:0 0 0 2px #5a7a5626}.manage-plan-save-btn{padding:6px 14px!important;font-size:.85rem!important;white-space:nowrap}.visibility-toggle{display:flex;align-items:center;gap:var(--space-sm);background:none;border:none;cursor:pointer;padding:0;flex-shrink:0}.visibility-toggle:disabled{opacity:.5;cursor:not-allowed}.visibility-toggle-track{position:relative;width:44px;height:24px;border-radius:12px;background:var(--charcoal-light);transition:background .3s ease}.visibility-toggle.public .visibility-toggle-track{background:var(--sage-deep)}.visibility-toggle-thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .3s ease;box-shadow:0 1px 3px #0003}.visibility-toggle.public .visibility-toggle-thumb{transform:translate(20px)}.visibility-toggle-label{font-family:var(--font-body);font-weight:600;font-size:.85rem;color:var(--charcoal);min-width:50px}.manage-plan-members-list{display:flex;flex-direction:column;gap:2px;margin-top:var(--space-sm);width:100%}.manage-plan-member-row{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border-radius:var(--radius-md);background:#00000008}.manage-plan-member-name{font-family:var(--font-body);font-size:.85rem;color:var(--charcoal);font-weight:500}.manage-plan-role-label{font-family:var(--font-body);font-size:.8rem;color:var(--charcoal-light);font-weight:600;font-style:italic}.manage-plan-role-select{font-family:var(--font-body);font-size:.8rem;padding:3px 8px;border:1px solid var(--tan-deep);border-radius:var(--radius-md);background:var(--parchment);color:var(--charcoal);cursor:pointer}.manage-plan-role-select:focus{outline:none;border-color:var(--sage-deep);box-shadow:0 0 0 2px #5a7a5626}.manage-plan-role-select:disabled{opacity:.5;cursor:not-allowed}.campsite-loading{text-align:center;color:var(--lavender-light);opacity:.7;font-style:italic;animation:fade-in .3s ease}.campsite-loading-flame{width:24px;height:36px;margin:0 auto var(--space-md);background:radial-gradient(ellipse at bottom,var(--ember) 0%,transparent 70%);border-radius:50%/60% 60% 40% 40%;animation:campfire-dance .8s ease-in-out infinite}.account-page{min-height:100vh;position:relative}.account-content{position:relative;z-index:10;min-height:100vh;display:flex;flex-direction:column}.account-card-wrapper{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-xl)}.account-card{position:relative;background:#faf5ebf0;border:1px solid rgba(168,139,91,.25);border-radius:var(--radius-lg);padding:var(--space-2xl) var(--space-xl);max-width:440px;width:100%;text-align:center;box-shadow:0 12px 40px #0003;animation:fade-in-up .5s ease backwards}.account-close{position:absolute;top:var(--space-md);right:var(--space-md);background:none;border:none;cursor:pointer;color:var(--charcoal-light);padding:6px;border-radius:50%;transition:all .2s ease;opacity:.5}.account-close:hover{opacity:1;background:#0000000f}.account-avatar{margin-bottom:var(--space-md)}.account-title{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--charcoal);margin-bottom:var(--space-lg)}.account-meta{margin-top:var(--space-lg);font-size:.8rem;font-style:italic;color:var(--charcoal-light);opacity:.6}.recipes-page{min-height:100vh;position:relative}.recipes-content{position:relative;z-index:10;min-height:100vh;display:flex;flex-direction:column;padding-top:56px}.recipes-section-nav{display:flex;gap:var(--space-lg);max-width:760px;width:100%;margin:0 auto;padding:var(--space-sm) var(--space-xl) 0}.recipes-section-nav__tab{background:none;border:none;font-family:var(--font-body);font-size:.85rem;color:var(--parchment);opacity:.45;cursor:pointer;padding:var(--space-xs) 0;border-bottom:2px solid transparent;transition:all .2s ease;letter-spacing:.02em}.recipes-section-nav__tab:hover{opacity:.7}.recipes-section-nav__tab--active{opacity:.95;border-bottom-color:#fff8e766}.recipes-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-xl) var(--space-md) 60px;background:#0a08144d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,248,231,.08)}.recipes-header-left{display:flex;align-items:center}.recipes-back-home{display:flex;align-items:center;gap:var(--space-xs);background:none;border:none;cursor:pointer;color:var(--lavender-light);font-family:var(--font-body);font-size:.85rem;padding:4px 8px;border-radius:var(--radius-sm);transition:color .2s ease,background .2s ease}.recipes-back-home:hover{color:var(--parchment);background:#ffffff12}.recipes-brand-icon{filter:drop-shadow(0 0 6px rgba(244,164,96,.3))}.recipes-brand-text{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--parchment);letter-spacing:.05em}.recipes-header-title{display:flex;align-items:center;gap:var(--space-xs)}.recipes-header-icon{filter:drop-shadow(0 0 6px rgba(244,164,96,.25))}.recipes-header-label{font-family:var(--font-heading);font-size:1rem;color:var(--parchment);opacity:.8;letter-spacing:.03em}.recipes-header-right{display:flex;align-items:center;gap:var(--space-md)}.recipes-user-btn{display:flex;align-items:center;gap:var(--space-sm);background:#ffffff0f;border:1px solid rgba(255,248,231,.12);border-radius:var(--radius-xl);padding:4px 14px 4px 4px;cursor:pointer;transition:all .3s ease}.recipes-user-btn:hover{background:#ffffff1f;border-color:#fff8e740}.recipes-user-name{font-size:.85rem;font-family:var(--font-body);color:var(--lavender-light)}.recipes-logout{font-size:.8rem;font-weight:600;color:var(--rose);background:#e8b4b81a;border:1px solid rgba(232,180,184,.25);padding:6px 14px;border-radius:var(--radius-xl);cursor:pointer;transition:all .3s ease}.recipes-logout:hover{background:#e8b4b833;border-color:#e8b4b866}.recipes-nav-link{font-size:.8rem;font-weight:600;color:var(--lavender-light);background:#ffffff12;border:1px solid rgba(255,248,231,.15);padding:6px 14px;border-radius:var(--radius-xl);cursor:pointer;font-family:var(--font-body);transition:all .2s ease}.recipes-nav-link:hover{background:#ffffff21;border-color:#fff8e74d;color:var(--parchment)}.recipes-list-view{flex:1;display:flex;flex-direction:column}.recipes-hero{text-align:center;padding:var(--space-2xl) var(--space-xl) var(--space-xl);animation:fade-in-up .6s ease backwards}.recipes-title{font-family:var(--font-display);font-size:2.2rem;font-weight:900;color:var(--parchment);letter-spacing:.04em;text-shadow:0 2px 12px rgba(0,0,0,.3)}.recipes-subtitle{font-family:var(--font-body);font-style:italic;font-size:1rem;color:var(--lavender-light);margin-top:var(--space-xs);opacity:.7}.recipes-toolbar{display:flex;align-items:center;gap:var(--space-md);padding:0 var(--space-xl) var(--space-md);max-width:760px;width:100%;margin:0 auto}.recipes-search-wrap{flex:1;position:relative;display:flex;align-items:center}.recipes-search-icon{position:absolute;left:12px;color:var(--tan-deep);pointer-events:none}.recipes-search{width:100%;padding:10px 16px 10px 36px;font-size:.9rem;font-family:var(--font-body);border:1.5px solid rgba(212,188,148,.4);border-radius:var(--radius-lg);background:#faf5eb1f;color:var(--parchment);transition:border-color .3s ease,background .3s ease}.recipes-search::placeholder{color:#faf5eb59;font-style:italic}.recipes-search:focus{outline:none;border-color:#f4a46080;background:#faf5eb2e}.recipes-create-btn{display:flex;align-items:center;gap:var(--space-xs);padding:10px 18px;font-family:var(--font-body);font-weight:700;font-size:.88rem;color:#fff;background:linear-gradient(135deg,var(--sage-deep),var(--sage-dark));border-radius:var(--radius-lg);box-shadow:0 4px 14px #5a7a5659;transition:all .3s ease;white-space:nowrap}.recipes-create-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px #5a7a5673}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-md);padding:0 var(--space-xl) var(--space-2xl);max-width:760px;width:100%;margin:0 auto}.recipe-card{background:#faf5ebeb;border:1px solid rgba(168,139,91,.2);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);cursor:pointer;transition:all .3s ease;animation:fade-in-up .5s ease backwards;text-align:left;position:relative;box-shadow:0 4px 16px #0000001f;display:flex;flex-direction:column;gap:var(--space-sm)}.recipe-card:hover{transform:translateY(-3px);box-shadow:0 8px 28px #0003;border-color:#a88b5b59}.recipe-card--draft{background:#ede4d0d9;border-style:dashed}.recipe-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm)}.recipe-card__name{font-family:var(--font-heading);font-size:1.1rem;color:var(--charcoal);line-height:1.3;flex:1}.recipe-card__draft-badge{font-family:var(--font-body);font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--tan-dark);background:#a88b5b26;border:1px solid rgba(168,139,91,.3);padding:2px 7px;border-radius:var(--radius-xl);flex-shrink:0}.recipe-card__desc{font-size:.82rem;color:var(--charcoal-light);line-height:1.45;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.recipe-card__meta{display:flex;align-items:center;gap:var(--space-md);margin-top:auto}.recipe-card__servings,.recipe-card__imported{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--charcoal-light);opacity:.7;white-space:nowrap}.recipe-card__tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.recipe-card__tag{font-size:.7rem;padding:1px 8px;background:#6a994e1f;color:var(--sage-deep);border-radius:10px;text-transform:capitalize}.recipes-meal-tabs{display:flex;gap:var(--space-xs);max-width:760px;width:100%;margin:0 auto var(--space-md);padding:0 var(--space-xl);flex-wrap:wrap}.recipes-meal-tab{background:#faf5eb14;border:1px solid rgba(168,139,91,.15);border-radius:20px;padding:var(--space-xs) var(--space-md);font-family:var(--font-body);font-size:.85rem;color:var(--parchment);opacity:.65;cursor:pointer;transition:all .2s ease;text-transform:capitalize}.recipes-meal-tab:hover{opacity:.85;background:#faf5eb1f}.recipes-meal-tab--active{opacity:1;background:#faf5eb26;border-color:#a88b5b59}.recipe-card__arrow{position:absolute;bottom:var(--space-md);right:var(--space-md);color:var(--tan-deep);opacity:.4;transition:opacity .3s ease,transform .3s ease}.recipe-card:hover .recipe-card__arrow{opacity:.8;transform:translate(3px)}.recipes-loading{text-align:center;padding:var(--space-2xl);color:var(--lavender-light);opacity:.7;font-style:italic;animation:fade-in .3s ease}.recipes-loading-flame{width:18px;height:28px;margin:0 auto var(--space-md);background:radial-gradient(ellipse at bottom,var(--ember) 0%,transparent 70%);border-radius:50%/60% 60% 40% 40%;animation:campfire-dance .8s ease-in-out infinite}.recipes-loading-inline{text-align:center;color:var(--lavender-light);font-style:italic;font-size:.88rem;padding:var(--space-sm);animation:fade-in .3s ease}.recipes-error{text-align:center;color:var(--rose);background:#e8b4b826;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);margin:0 var(--space-xl) var(--space-md);font-size:.9rem;max-width:760px;width:calc(100% - 2 * var(--space-xl));margin-left:auto;margin-right:auto}.recipes-empty{text-align:center;padding:var(--space-2xl);animation:fade-in .5s ease}.recipes-empty-icon{opacity:.4;margin-bottom:var(--space-md);animation:gentle-bob 4s ease-in-out infinite}.recipes-empty-text{color:var(--lavender-light);font-style:italic;opacity:.6}.recipes-detail-view,.recipes-create-view{flex:1;display:flex;flex-direction:column}.recipes-detail-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-xl);animation:fade-in .3s ease}.recipes-back-btn{display:flex;align-items:center;gap:6px;background:#ffffff14;border:1px solid rgba(255,248,231,.15);border-radius:var(--radius-lg);padding:8px 16px;font-family:var(--font-body);font-size:.85rem;color:var(--lavender-light);cursor:pointer;transition:all .2s ease}.recipes-back-btn:hover{background:#ffffff24;color:var(--parchment)}.recipes-detail-actions{display:flex;align-items:center;gap:var(--space-sm)}.recipes-action-btn{display:flex;align-items:center;gap:5px;padding:7px 14px;font-family:var(--font-body);font-size:.82rem;font-weight:600;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.recipes-action-btn--edit{background:#b5c9b32e;border:1px solid rgba(143,176,138,.4);color:var(--sage-deep)}.recipes-action-btn--edit:hover{background:#b5c9b34d;border-color:#8fb08a99}.recipes-action-btn--delete{background:#e8b4b826;border:1px solid rgba(212,148,154,.35);color:var(--rose-deep)}.recipes-action-btn--delete:hover{background:#e8b4b847;border-color:#d4949a8c}.recipe-detail{max-width:860px;width:100%;margin:0 auto;padding:0 var(--space-xl) var(--space-2xl);animation:fade-in-up .4s ease backwards}.recipe-detail__hero{background:#faf5ebf0;border:1px solid rgba(168,139,91,.2);border-radius:var(--radius-lg);padding:var(--space-xl);margin-bottom:var(--space-md);box-shadow:0 4px 20px #0000001f}.recipe-detail__title-row{display:flex;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-sm)}.recipe-detail__name{font-family:var(--font-display);font-size:1.8rem;font-weight:700;color:var(--charcoal);line-height:1.2;flex:1}.recipe-detail__draft-badge{font-family:var(--font-body);font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--tan-dark);background:#a88b5b26;border:1px solid rgba(168,139,91,.3);padding:3px 9px;border-radius:var(--radius-xl);margin-top:6px;flex-shrink:0}.recipe-detail__description{font-family:var(--font-body);font-size:.95rem;color:var(--charcoal-light);line-height:1.6;margin-bottom:var(--space-md);font-style:italic}.recipe-detail__attrs{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.recipe-detail__attr{display:flex;align-items:center;gap:5px;font-size:.85rem;color:var(--charcoal-light)}.recipe-detail__attr--link{color:var(--sage-dark);text-decoration:none;border-bottom:1px dashed var(--sage-deep);transition:color .2s ease}.recipe-detail__attr--link:hover{color:var(--sage-deep)}.recipe-detail__tag{font-size:.78rem;padding:2px 10px;background:#6a994e1f;color:var(--sage-deep);border-radius:10px;text-transform:capitalize}.recipe-detail__ingredients{background:#faf5ebf0;border:1px solid rgba(168,139,91,.2);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:0 4px 20px #0000001f}.recipe-detail__section-title{font-family:var(--font-heading);font-size:1.1rem;color:var(--charcoal);margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-sm)}.recipe-detail__no-ingredients{font-style:italic;color:var(--charcoal-light);opacity:.6;font-size:.9rem}.recipe-detail__ingredient-list{list-style:none;display:flex;flex-direction:column;gap:2px}.recipe-detail__ingredient{display:flex;align-items:center;gap:var(--space-md);padding:8px 0;border-bottom:1px solid rgba(168,139,91,.1);font-size:.92rem}.recipe-detail__ingredient:last-child{border-bottom:none}.recipe-detail__ingredient--pending{opacity:1}.recipe-detail__ingredient-qty{font-weight:700;color:var(--sage-dark);font-size:.88rem;white-space:nowrap}.recipe-detail__ingredient-name{color:var(--charcoal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-detail__ingredient-flag{font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ember);background:#f4a46026;border:1px solid rgba(244,164,96,.3);padding:2px 7px;border-radius:var(--radius-xl)}.recipes-import-btn{display:flex;align-items:center;gap:5px;padding:10px 16px;font-family:var(--font-body);font-weight:600;font-size:.85rem;color:var(--lavender-light);background:#ffffff12;border:1px solid rgba(255,248,231,.18);border-radius:var(--radius-lg);transition:all .2s ease;white-space:nowrap}.recipes-import-btn:hover{background:#ffffff21;border-color:#fff8e74d;color:var(--parchment)}.recipe-detail__pending-count{font-family:var(--font-body);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ember);background:#f4a46026;border:1px solid rgba(244,164,96,.3);padding:2px 8px;border-radius:var(--radius-xl);margin-left:var(--space-sm)}.recipe-detail__ingredient-row{display:grid;grid-template-columns:18px 80px minmax(100px,2fr) auto minmax(0,1fr) auto;align-items:center;gap:var(--space-sm);width:100%}.recipe-detail__ingredient-status-icon{display:flex;align-items:center;justify-content:center}.recipe-detail__ingredient-action{display:flex;align-items:center;gap:4px}.review-resolve-btn{padding:4px 12px;font-family:var(--font-body);font-size:.75rem;font-weight:700;color:var(--ember);background:#f4a4601f;border:1px solid rgba(244,164,96,.3);border-radius:var(--radius-xl);cursor:pointer;transition:all .2s ease;white-space:nowrap}.review-resolve-btn:hover{background:#f4a46038;border-color:#f4a46080}.review-edit-btn{margin-left:auto;background:none;border:1px solid var(--tan-deep);border-radius:var(--radius-sm);padding:2px 10px;font-size:.75rem;color:var(--charcoal-light);cursor:pointer;font-family:var(--font-body);transition:all .2s ease;opacity:0}.recipe-detail__ingredient:hover .review-edit-btn{opacity:1}.review-edit-btn:hover{background:#0000000a;color:var(--charcoal)}.review-remove-btn{background:none;border:1px solid rgba(180,60,60,.3);border-radius:var(--radius-sm);padding:2px 7px;font-size:.7rem;color:#b43c3c99;cursor:pointer;font-family:var(--font-body);transition:all .2s ease;opacity:0;line-height:1}.recipe-detail__ingredient:hover .review-remove-btn,.recipe-detail__pending-actions .review-remove-btn,.recipe-detail__pending-actions .review-resolve-btn{opacity:1}.review-remove-btn:hover{background:#b43c3c14;color:#b43c3ce6;border-color:#b43c3c80}.review-remove-btn--labeled{opacity:1;padding:4px 14px;font-size:.78rem;font-weight:700;line-height:normal;margin-left:auto}.recipe-detail__ingredient-category{font-size:.7rem;color:var(--charcoal-light);background:#a88b5b1a;border:1px solid rgba(168,139,91,.15);border-radius:100px;padding:1px 8px;opacity:.7;white-space:nowrap;justify-self:center;margin-right:var(--space-2xl)}.recipe-detail__ingredient-source{font-size:.75rem;color:var(--charcoal-light);opacity:.6;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.recipe-detail__pending-card{background:#f4a4600f;border:1px solid rgba(244,164,96,.2);border-radius:var(--radius-md);padding:10px 12px;display:flex;flex-direction:column;gap:8px;width:100%}.recipe-detail__pending-source-line{display:flex;align-items:center;gap:8px}.recipe-detail__pending-icon{flex-shrink:0}.recipe-detail__pending-source{font-family:var(--font-body);font-size:.82rem;font-style:italic;color:var(--charcoal-light);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-detail__pending-fields{display:flex;align-items:flex-start;gap:6px}.pending-field{font-family:var(--font-body);font-size:.85rem;color:var(--charcoal);background:#faf5ebb3;border:1px solid rgba(168,139,91,.25);border-radius:var(--radius-sm);padding:4px 8px;transition:border-color .2s ease}.pending-field:focus{outline:none;border-color:#a88b5b80}.pending-field--qty{width:60px;text-align:right;font-weight:700;color:var(--sage-dark)}.pending-field--unit{width:80px;cursor:pointer}.pending-field--name{width:auto;min-width:120px}.pending-field--category{width:110px;cursor:pointer;font-size:.78rem}.pending-field-group{display:inline-flex;flex-direction:column;gap:4px}.pending-field-group__fields{display:flex;align-items:center;gap:6px;padding:6px;border:1px solid transparent;border-radius:var(--radius-md)}.pending-field-group__fields--bordered{border-color:#f4a46040}.pending-field-group__fields--bordered .pending-field{border-color:#a88b5b26}.pending-field-group .pending-status__label--create{text-align:center;display:block}.recipe-detail__pending-fields .pending-field--qty{border-color:transparent;margin-top:7px}.recipe-detail__pending-status{display:flex;align-items:center;gap:6px;font-size:.78rem;padding-left:2px}.pending-status__label{color:var(--charcoal-light);font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;font-weight:600}.pending-status__label--match{color:var(--sage-deep)}.pending-status__label--create{color:var(--ember)}.pending-status__value{font-weight:600;color:var(--charcoal);font-size:.82rem}.recipe-detail__pending-actions{display:flex;align-items:center;gap:6px;width:100%}.review-accept-btn{padding:4px 14px;font-family:var(--font-body);font-size:.78rem;font-weight:700;color:var(--sage-deep);background:#6a994e1f;border:1px solid rgba(106,153,78,.3);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease;white-space:nowrap}.review-accept-btn:hover:not(:disabled){background:#6a994e38;border-color:#6a994e80}.review-accept-btn:disabled{opacity:.6;cursor:default}.recipe-detail__accept-all-btn{display:block;margin:var(--space-sm) 0;padding:8px 20px;font-family:var(--font-body);font-size:.82rem;font-weight:700;color:var(--sage-deep);background:#6a994e1a;border:1px solid rgba(106,153,78,.3);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;width:100%}.recipe-detail__accept-all-btn:hover:not(:disabled){background:#6a994e33;border-color:#6a994e80}.recipe-detail__accept-all-btn:disabled{opacity:.6;cursor:default}.recipe-detail__add-ingredient{margin-top:var(--space-md)}.recipe-detail__add-btn{font-family:var(--font-body);font-size:.82rem;font-weight:600;color:var(--sage-deep);background:#6a994e14;border:1px dashed rgba(106,153,78,.3);border-radius:var(--radius-lg);padding:8px 16px;cursor:pointer;transition:all .2s ease}.recipe-detail__add-btn:hover{background:#6a994e26;border-color:#6a994e80}.recipe-detail__add-picker{background:#faf5eb99;border:1px solid rgba(168,139,91,.2);border-radius:var(--radius-lg);padding:var(--space-md)}.recipe-detail__add-picker-header{display:flex;gap:var(--space-sm);align-items:center;margin-bottom:var(--space-md)}.recipe-detail__add-picker-header .recipes-input{flex:1}.recipe-detail__add-close{background:none;border:none;font-size:1.1rem;color:var(--charcoal-light);cursor:pointer;padding:4px 8px}.recipe-detail__add-categories{max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-sm)}.recipe-detail__add-category-group{display:flex;flex-direction:column;gap:4px}.recipe-detail__add-category-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--charcoal-light);opacity:.6}.recipe-detail__add-pills{display:flex;flex-wrap:wrap;gap:4px}.recipe-detail__add-create-btn{margin-top:var(--space-sm);font-family:var(--font-body);font-size:.8rem;font-weight:600;color:var(--sage-deep);background:none;border:1px dashed rgba(106,153,78,.3);border-radius:var(--radius-sm);padding:6px 14px;cursor:pointer;transition:all .2s ease}.recipe-detail__add-create-btn:hover{background:#6a994e14;border-color:#6a994e80}.recipe-detail__add-create-form{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-md);padding:var(--space-md);background:#b5c9b31a;border:1px solid rgba(143,176,138,.25);border-radius:var(--radius-sm)}.recipe-detail__add-create-row{display:flex;gap:var(--space-sm)}.recipes-input--qty{width:70px;flex:none}.recipe-detail__add-create-actions{display:flex;gap:var(--space-sm);justify-content:flex-end;margin-top:var(--space-xs)}.recipe-detail__add-create-cancel{font-family:var(--font-body);font-size:.8rem;color:var(--charcoal-light);background:none;border:1px solid rgba(168,139,91,.3);border-radius:var(--radius-sm);padding:6px 14px;cursor:pointer}.recipe-detail__add-create-save{font-family:var(--font-body);font-size:.8rem;font-weight:600;color:#fff;background:var(--sage-deep);border:none;border-radius:var(--radius-sm);padding:6px 14px;cursor:pointer;transition:background .2s}.recipe-detail__add-create-save:hover:not(:disabled){background:var(--sage)}.recipe-detail__add-create-save:disabled{opacity:.5;cursor:default}.resolve-modal{background:linear-gradient(145deg,#faf5ebfa,#ede4d0fa);border:1px solid rgba(168,139,91,.3);border-radius:var(--radius-lg);padding:var(--space-xl);width:90%;max-width:560px;max-height:85vh;overflow-y:auto;animation:scale-in .25s ease;box-shadow:0 20px 60px #0006,inset 0 1px #fff6;position:relative}.resolve-modal__title{font-family:var(--font-heading);font-size:1.4rem;color:var(--charcoal);margin-bottom:var(--space-lg)}.resolve-modal__source{background:#00000008;border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-lg);display:flex;flex-direction:column;gap:4px}.resolve-modal__source-label{font-size:.75rem;font-weight:600;color:var(--charcoal-light);text-transform:uppercase;letter-spacing:.05em}.resolve-modal__source-text{font-size:.95rem;color:var(--charcoal);font-style:italic}.resolve-modal__section{margin-bottom:var(--space-lg)}.resolve-modal__section-title{font-family:var(--font-body);font-size:.85rem;font-weight:600;color:var(--charcoal-light);margin-bottom:var(--space-sm)}.resolve-modal__suggestions,.resolve-modal__search-results{display:flex;flex-direction:column;gap:6px}.resolve-modal__suggestion{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#fff9;border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;text-align:left;font-family:var(--font-body)}.resolve-modal__suggestion:hover{background:#ffffffe6;border-color:var(--tan-deep)}.resolve-modal__suggestion--selected{background:#5a7a5614;border-color:var(--sage-deep);box-shadow:0 0 0 1px var(--sage-deep)}.resolve-modal__suggestion-name{font-size:.95rem;font-weight:600;color:var(--charcoal)}.resolve-modal__suggestion-meta{font-size:.8rem;color:var(--charcoal-light);opacity:.7}.resolve-modal__no-suggestions{font-size:.85rem;color:var(--charcoal-light);font-style:italic;padding:var(--space-sm) 0}.resolve-modal__search{width:100%;padding:10px 14px;font-size:.9rem;border:2px solid var(--tan-deep);border-radius:var(--radius-md);background:#ffffffb3;color:var(--charcoal);font-family:var(--font-body);margin-bottom:var(--space-sm);transition:border-color .3s ease}.resolve-modal__search:focus{outline:none;border-color:var(--lavender-deep);box-shadow:0 0 0 3px #b8a5cc4d}.resolve-modal__search::placeholder{color:var(--tan-deep);font-style:italic}.resolve-modal__create-toggle{background:none;border:2px dashed var(--tan-deep);border-radius:var(--radius-md);padding:12px 16px;width:100%;font-family:var(--font-body);font-size:.9rem;font-weight:600;color:var(--sage-deep);cursor:pointer;transition:all .2s ease;text-align:left}.resolve-modal__create-toggle:hover{border-color:var(--sage-deep);background:#5a7a560a}.resolve-modal__create-form{border:2px solid var(--sage-deep);border-radius:var(--radius-md);padding:var(--space-md);background:#5a7a5608}.resolve-modal__create-fields{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-sm)}.resolve-modal__create-row{display:flex;gap:var(--space-sm)}.resolve-modal__create-row .recipes-field{flex:1}.resolve-modal__create-back{background:none;border:none;font-family:var(--font-body);font-size:.8rem;color:var(--charcoal-light);cursor:pointer;padding:4px 0}.resolve-modal__create-back:hover{color:var(--charcoal)}.resolve-modal__qty-row{margin-bottom:var(--space-md)}.resolve-modal__qty-label{display:block;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--charcoal-light);margin-bottom:var(--space-xs)}.resolve-modal__qty-inputs{display:flex;gap:var(--space-sm)}.resolve-modal__qty-input{width:80px;padding:6px 10px;font-family:var(--font-body);font-size:.88rem;color:var(--charcoal);background:#fff;border:1px solid rgba(168,139,91,.3);border-radius:var(--radius-sm)}.resolve-modal__qty-input:focus{outline:none;border-color:var(--sage)}.resolve-modal__unit-select{padding:6px 10px;font-family:var(--font-body);font-size:.88rem;color:var(--charcoal);background:#fff;border:1px solid rgba(168,139,91,.3);border-radius:var(--radius-sm)}.resolve-modal__preview{background:#5a7a560f;border:1px solid rgba(90,122,86,.15);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-lg);font-size:.9rem;color:var(--charcoal);line-height:1.5}.resolve-modal__preview p{margin:0}.resolve-modal__preview--empty{color:var(--charcoal-light);font-style:italic}.resolve-modal__error{font-size:.85rem;color:var(--flame);margin-bottom:var(--space-md)}.resolve-modal__actions{display:flex;justify-content:space-between;align-items:center}.resolve-modal__actions-right{display:flex;gap:var(--space-sm)}.resolve-modal__remove-btn{font-size:.8rem;padding:8px 14px}.review-btn{padding:6px 14px;font-family:var(--font-body);font-size:.8rem;font-weight:600;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:4px;white-space:nowrap}.review-btn:disabled{opacity:.5;cursor:not-allowed}.review-btn--confirm{background:linear-gradient(135deg,var(--sage-deep),var(--sage-dark));color:#fff;border:none;box-shadow:0 3px 10px #5a7a564d}.review-btn--confirm:hover:not(:disabled){box-shadow:0 5px 14px #5a7a5666;transform:translateY(-1px)}.review-btn--secondary{background:#b5c9b326;border:1px solid rgba(143,176,138,.35);color:var(--sage-dark)}.review-btn--secondary:hover:not(:disabled){background:#b5c9b347}.review-btn--danger{background:#e8b4b82e;border:1px solid rgba(212,148,154,.4);color:var(--rose-deep)}.review-btn--danger:hover:not(:disabled){background:#e8b4b852}.review-btn--cancel{background:none;border:1px solid rgba(168,139,91,.3);color:var(--charcoal-light)}.review-btn--cancel:hover{background:#0000000a}.recipe-detail__duplicate-banner{display:flex;gap:var(--space-md);padding:var(--space-md);background:#f4a4601a;border:1px solid rgba(244,164,96,.3);border-radius:var(--radius-md);margin-bottom:var(--space-md);animation:fade-in-up .3s ease backwards}.recipe-detail__duplicate-banner-icon{flex-shrink:0;padding-top:2px}.recipe-detail__duplicate-banner-body{flex:1}.recipe-detail__duplicate-banner-title{font-family:var(--font-heading);font-size:.95rem;color:var(--charcoal);margin-bottom:4px}.recipe-detail__duplicate-banner-text{font-size:.85rem;color:var(--charcoal-light);line-height:1.5;margin-bottom:var(--space-sm)}.recipe-detail__duplicate-banner-actions{display:flex;gap:var(--space-sm);flex-wrap:wrap}.recipe-detail__publish-section{background:#faf5ebf0;border:1px solid rgba(168,139,91,.2);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:0 4px 20px #0000001f;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap}.recipe-detail__publish-ready{font-family:var(--font-body);font-size:.9rem;color:var(--sage-dark);font-weight:600}.recipe-detail__publish-blocked{font-size:.85rem;color:var(--charcoal-light);font-style:italic}.recipe-detail__publish-btn{padding:10px 24px;font-family:var(--font-display);font-size:.88rem;font-weight:700;letter-spacing:.04em;color:#fff;background:linear-gradient(135deg,var(--ember),var(--ember-bright));border:none;border-radius:var(--radius-lg);cursor:pointer;box-shadow:0 4px 16px #f4a46066;transition:all .3s ease;white-space:nowrap}.recipe-detail__publish-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #f4a46080}.recipe-detail__publish-btn:disabled{opacity:.5;cursor:not-allowed}.recipes-import-progress{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-md);color:var(--charcoal-light);font-style:italic;font-size:.88rem}.recipes-field-hint{font-size:.75rem;color:var(--charcoal-light);opacity:.7;margin-top:4px;line-height:1.5;font-style:italic}.recipes-form-container{max-width:580px;width:100%;margin:0 auto;padding:0 var(--space-xl) var(--space-2xl);animation:fade-in-up .4s ease backwards}.recipes-form-title{font-family:var(--font-display);font-size:1.8rem;font-weight:700;color:var(--parchment);margin-bottom:var(--space-xs)}.recipes-form-subtitle{font-family:var(--font-body);font-style:italic;font-size:.9rem;color:var(--lavender-light);opacity:.7;margin-bottom:var(--space-xl)}.recipes-form{display:flex;flex-direction:column;gap:var(--space-lg)}.recipes-form-section{background:#faf5ebf0;border:1px solid rgba(168,139,91,.2);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);box-shadow:0 4px 16px #0000001a}.recipes-form-section-title{font-family:var(--font-heading);font-size:.95rem;color:var(--charcoal-light);letter-spacing:.03em;margin-bottom:var(--space-xs)}.recipes-field{display:flex;flex-direction:column;gap:5px}.recipes-field--half{max-width:200px}.recipes-row{display:flex;gap:var(--space-md);flex-wrap:wrap}.recipes-row .recipes-field--half{flex:1;min-width:130px}.recipes-label{font-size:.8rem;font-weight:600;color:var(--charcoal-light);letter-spacing:.03em}.recipes-input{width:100%;padding:10px 14px;font-size:.92rem;font-family:var(--font-body);border:1.5px solid var(--tan-deep);border-radius:var(--radius-md);background:#fff9;color:var(--charcoal);transition:border-color .3s ease,box-shadow .3s ease}.recipes-input:focus{outline:none;border-color:var(--sage-deep);box-shadow:0 0 0 3px #8fb08a33}.recipes-input::placeholder{color:var(--tan-deep);font-style:italic}.recipes-textarea{resize:vertical;min-height:80px}.recipes-input--qty{max-width:90px}.recipes-select{padding:8px 28px 8px 10px;font-family:var(--font-body);font-size:.85rem;color:var(--charcoal);background:#ffffffb3;border:1px solid rgba(143,176,138,.4);border-radius:var(--radius-sm);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0,0 L5,6 L10,0' fill='none' stroke='%23666' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.recipes-draft-ingredients{list-style:none;display:flex;flex-direction:column;gap:4px;margin-bottom:var(--space-sm)}.recipes-draft-ingredient{display:flex;align-items:center;gap:var(--space-sm);padding:7px 10px;background:#b5c9b326;border:1px solid rgba(143,176,138,.3);border-radius:var(--radius-sm);font-size:.88rem}.recipes-input--inline-qty{width:60px;padding:4px 6px;font-size:.85rem;text-align:center;border:1px solid rgba(143,176,138,.4);border-radius:var(--radius-sm);background:#ffffffb3;color:var(--sage-dark);font-weight:700}.recipes-select--inline{padding:4px 24px 4px 6px;font-family:var(--font-body);font-size:.8rem;border:1px solid rgba(143,176,138,.4);border-radius:var(--radius-sm);background:#ffffffb3;color:var(--charcoal-light);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0,0 L4,5 L8,0' fill='none' stroke='%23888' stroke-width='1.3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center}.recipes-draft-ingredient__name{flex:1;color:var(--charcoal)}.recipes-draft-ingredient__remove{background:none;border:none;cursor:pointer;color:var(--charcoal-light);font-size:1.2rem;line-height:1;padding:2px 4px;border-radius:50%;transition:color .2s ease,background .2s ease}.recipes-draft-ingredient__remove:hover{color:var(--flame);background:#e85d3a1a}.recipes-add-ingredient{display:flex;flex-direction:column;gap:var(--space-sm)}.recipes-ingredient-search-wrap{position:relative}.recipes-ingredient-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:50;background:var(--parchment);border:1.5px solid var(--tan-deep);border-radius:var(--radius-md);box-shadow:0 8px 24px #00000026;max-height:200px;overflow-y:auto;list-style:none}.recipes-ingredient-option{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;cursor:pointer;transition:background .15s ease;border-bottom:1px solid rgba(168,139,91,.08)}.recipes-ingredient-option:last-child{border-bottom:none}.recipes-ingredient-option:hover{background:#b5c9b333}.recipes-ingredient-option__name{font-size:.88rem;color:var(--charcoal)}.recipes-ingredient-option__cat{font-size:.72rem;color:var(--charcoal-light);opacity:.6;text-transform:capitalize}.recipes-ingredient-qty-row{display:flex;align-items:center;gap:var(--space-sm)}.recipes-add-ingredient-btn{padding:9px 18px;font-family:var(--font-body);font-weight:700;font-size:.85rem;color:#fff;background:linear-gradient(135deg,var(--sage-deep),var(--sage-dark));border-radius:var(--radius-md);box-shadow:0 3px 10px #5a7a564d;transition:all .2s ease;white-space:nowrap}.recipes-add-ingredient-btn:hover{transform:translateY(-1px);box-shadow:0 5px 14px #5a7a5666}.recipes-form-error{font-size:.85rem;color:var(--flame);background:#e85d3a14;border:1px solid rgba(232,93,58,.2);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md)}.recipes-form-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.recipes-cancel-btn{padding:10px 20px;font-size:.88rem;color:var(--lavender-light);background:#ffffff12;border:1px solid rgba(255,248,231,.2);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-body);transition:all .2s ease}.recipes-cancel-btn:hover{background:#ffffff1f;color:var(--parchment)}.recipes-submit-btn{padding:10px 24px;font-size:.9rem;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--sage-deep),var(--sage-dark));border:none;border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-body);box-shadow:0 4px 14px #5a7a5659;transition:all .3s ease}.recipes-submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #5a7a5673}.recipes-submit-btn:disabled{opacity:.5;cursor:not-allowed}.ingredient-picker{border:1.5px solid rgba(168,139,91,.2);border-radius:var(--radius-md);background:#ffffff4d;overflow:hidden}.ingredient-picker__search-wrap{position:relative;padding:var(--space-sm) var(--space-md);border-bottom:1px solid rgba(168,139,91,.15);background:#ffffff4d}.ingredient-picker__search-icon{position:absolute;left:calc(var(--space-md) + 10px);top:50%;transform:translateY(-50%);color:var(--charcoal-light);opacity:.5}.ingredient-picker__search{width:100%;padding:8px 12px 8px 30px;font-size:.88rem;border:1.5px solid var(--tan-deep);border-radius:var(--radius-md);background:#ffffffb3;color:var(--charcoal);font-family:var(--font-body);transition:border-color .2s ease}.ingredient-picker__search:focus{outline:none;border-color:var(--lavender-deep);box-shadow:0 0 0 3px #b8a5cc33}.ingredient-picker__search::placeholder{color:var(--tan-deep);font-style:italic}.ingredient-picker__clear{position:absolute;right:calc(var(--space-md) + 8px);top:50%;transform:translateY(-50%);background:none;border:none;font-size:1.1rem;color:var(--charcoal-light);cursor:pointer;padding:2px 6px;border-radius:50%;line-height:1}.ingredient-picker__clear:hover{color:var(--flame);background:#e85d3a1a}.ingredient-picker__categories{padding:var(--space-sm) var(--space-md) var(--space-md);max-height:320px;overflow-y:auto}.ingredient-picker__empty{font-size:.85rem;color:var(--charcoal-light);font-style:italic;text-align:center;padding:var(--space-lg) 0}.ingredient-picker__category{margin-bottom:var(--space-md)}.ingredient-picker__category:last-child{margin-bottom:0}.ingredient-picker__category-title{font-family:var(--font-body);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--charcoal-light);opacity:.6;margin-bottom:6px}.ingredient-picker__pills{display:flex;flex-wrap:wrap;gap:5px}.ingredient-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;background:#fff9;border:1.5px solid rgba(168,139,91,.25);border-radius:100px;cursor:pointer;font-family:var(--font-body);transition:all .15s ease;line-height:1}.ingredient-pill:hover{background:#b5c9b333;border-color:var(--sage-deep);transform:translateY(-1px);box-shadow:0 2px 8px #5a7a5626}.ingredient-pill__name{font-size:.8rem;font-weight:600;color:var(--charcoal)}.ingredient-pill__unit{font-size:.7rem;color:var(--charcoal-light);opacity:.6}.ingredients-page{position:relative;min-height:100vh;overflow-x:hidden}.ingredients-content{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column;padding-top:56px}.ingredients-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xl) 0 var(--space-xl) 40px}.ingredients-header-left{display:flex;align-items:center;gap:var(--space-lg)}.ingredients-back{display:flex;align-items:center;gap:4px;background:none;border:none;color:var(--lavender-light);font-family:var(--font-body);font-size:.85rem;cursor:pointer;opacity:.7;transition:opacity .2s}.ingredients-back:hover{opacity:1}.ingredients-title{font-family:var(--font-heading);font-size:1.8rem;color:var(--parchment);margin:0}.ingredients-header-right{display:flex;align-items:center;gap:var(--space-md)}.ingredients-user{font-size:.82rem;color:var(--lavender-light);opacity:.6}.ingredients-toolbar{display:flex;gap:var(--space-md);margin-top:var(--space-xl);margin-bottom:var(--space-xl)}.ingredients-search{flex:1;padding:10px 14px;font-family:var(--font-body);font-size:.9rem;color:var(--charcoal);background:#faf5ebeb;border:1px solid rgba(168,139,91,.25);border-radius:var(--radius-lg)}.ingredients-search:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 2px #6a994e26}.ingredients-create-btn{padding:10px 18px;font-family:var(--font-body);font-weight:600;font-size:.85rem;color:var(--parchment);background:var(--sage-deep);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;white-space:nowrap}.ingredients-create-btn:hover{background:var(--sage)}.ingredients-error{color:var(--ember);font-size:.85rem;margin-bottom:var(--space-md);max-width:760px;width:100%;margin-left:auto;margin-right:auto;padding:0 var(--space-xl)}.ingredients-loading{color:var(--lavender-light);opacity:.6;text-align:center;padding:var(--space-2xl)}.ingredients-empty{color:var(--lavender-light);opacity:.5;text-align:center;padding:var(--space-2xl);font-style:italic}.ingredients-create-wrap{max-width:760px;width:100%;margin:0 auto var(--space-xl);padding:0 var(--space-xl);box-sizing:border-box}.ingredients-create-form{background:#faf5ebf0;border:1px solid rgba(168,139,91,.2);border-radius:var(--radius-lg);padding:var(--space-lg)}.ingredients-create-title{font-family:var(--font-heading);font-size:1.05rem;color:var(--charcoal);margin:0 0 var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid rgba(168,139,91,.25);letter-spacing:.03em}.ingredients-form-row{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md);align-items:flex-end}.ingredients-form-field{display:flex;flex-direction:column}.ingredients-form-field--grow{flex:1;min-width:0}.ingredients-form-label{font-family:var(--font-body);font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;color:var(--charcoal-light);opacity:.55;padding-left:2px;margin-bottom:4px}.ingredients-input{flex:1;padding:8px 12px;font-family:var(--font-body);font-size:.85rem;color:var(--charcoal);background:#fff;border:1px solid rgba(168,139,91,.3);border-radius:var(--radius-sm)}.ingredients-input:focus{outline:none;border-color:var(--sage)}.ingredients-input--sm{padding:5px 8px;font-size:.8rem}.ingredients-select{padding:8px 26px 8px 10px;font-family:var(--font-body);font-size:.85rem;color:var(--charcoal);background:#fff;border:1px solid rgba(168,139,91,.3);border-radius:var(--radius-sm);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0,0 L5,6 L10,0' fill='none' stroke='%23888' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;cursor:pointer}.ingredients-select--sm{padding:5px 8px;font-size:.8rem}.ingredients-add-row-btn{background:none;border:none;color:var(--charcoal-light);font-family:var(--font-body);font-size:.8rem;cursor:pointer;opacity:.6;padding:0 0 var(--space-md);transition:opacity .2s}.ingredients-add-row-btn:hover{opacity:1}.ingredients-btn-remove-row{background:none;border:none;color:var(--charcoal-light);cursor:pointer;opacity:.4;padding:4px;transition:opacity .2s;align-self:center}.ingredients-btn-remove-row:hover{opacity:.8;color:#b43c3ccc}.ingredients-form-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.ingredients-btn-primary{padding:8px 18px;font-family:var(--font-body);font-weight:600;font-size:.82rem;color:#fff;background:var(--sage-deep);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .2s}.ingredients-btn-primary:hover:not(:disabled){background:var(--sage)}.ingredients-btn-primary:disabled{opacity:.5;cursor:default}.ingredients-btn-secondary{padding:8px 18px;font-family:var(--font-body);font-size:.82rem;color:var(--charcoal-light);background:transparent;border:1px solid rgba(168,139,91,.3);border-radius:var(--radius-sm);cursor:pointer}.ingredients-btn-danger{padding:8px 18px;font-family:var(--font-body);font-weight:600;font-size:.82rem;color:#fff;background:#c0392b;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .2s}.ingredients-btn-danger:hover:not(:disabled){background:#e74c3c}.ingredients-btn-danger:disabled{opacity:.5;cursor:default}.ingredients-list{display:flex;flex-direction:column;gap:var(--space-lg);max-width:760px;width:100%;margin:0 auto;padding:0 var(--space-xl) var(--space-2xl)}.ingredients-category-group{background:#faf5ebf0;border:1px solid rgba(168,139,91,.15);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg)}.ingredients-category-title{font-family:var(--font-heading);font-size:1.05rem;color:var(--charcoal);text-transform:capitalize;margin:0 0 var(--space-md);padding-bottom:var(--space-sm);letter-spacing:.03em;border-bottom:1px solid rgba(168,139,91,.25)}.ingredients-category-items{display:flex;flex-direction:column}.ingredients-item{padding:6px 0;border-bottom:1px solid rgba(168,139,91,.08)}.ingredients-item:last-child{border-bottom:none}.ingredients-item-display{display:flex;align-items:center;gap:var(--space-md)}.ingredients-item-name{flex:1;font-size:.88rem;color:var(--charcoal)}.ingredients-item-unit{font-size:.78rem;color:var(--charcoal-light);opacity:.6;min-width:50px}.ingredients-item-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}.ingredients-item:hover .ingredients-item-actions{opacity:1}.ingredients-btn-edit,.ingredients-btn-delete{background:none;border:1px solid rgba(168,139,91,.25);border-radius:var(--radius-sm);padding:2px 10px;font-size:.72rem;font-family:var(--font-body);cursor:pointer;transition:all .2s}.ingredients-btn-edit{color:var(--charcoal-light)}.ingredients-btn-edit:hover{background:#0000000a}.ingredients-btn-delete{color:#b43c3c99;border-color:#b43c3c33}.ingredients-btn-delete:hover{background:#b43c3c0f;color:#b43c3ce6}.ingredients-item-edit{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.ingredients-btn-save{padding:4px 12px;font-family:var(--font-body);font-size:.75rem;font-weight:600;color:#fff;background:var(--sage-deep);border:none;border-radius:var(--radius-sm);cursor:pointer}.ingredients-btn-cancel{padding:4px 12px;font-family:var(--font-body);font-size:.75rem;color:var(--charcoal-light);background:none;border:1px solid rgba(168,139,91,.3);border-radius:var(--radius-sm);cursor:pointer}.ingredients-inline-error{font-size:.75rem;color:var(--ember)}.ingredients-delete-modal{background:var(--parchment);border-radius:var(--radius-lg);padding:var(--space-xl);max-width:420px;width:90%;box-shadow:var(--shadow-xl)}.ingredients-delete-title{font-family:var(--font-heading);font-size:1.1rem;color:var(--charcoal);margin:0 0 var(--space-md)}.ingredients-delete-text{font-size:.9rem;color:var(--charcoal);margin:0 0 var(--space-sm)}.ingredients-delete-warning{font-size:.82rem;color:var(--ember);background:#f4a4601a;border:1px solid rgba(244,164,96,.2);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);margin:0 0 var(--space-lg)}.ingredients-delete-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}
