@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size: 12px;--rc-drag-handle-mobile-size: 24px;--rc-drag-handle-bg-colour: rgba(0, 0, 0, .2);--rc-drag-bar-size: 6px;--rc-border-color: rgba(255, 255, 255, .7);--rc-focus-color: #0088ff}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;max-width:100%}.ReactCrop *,.ReactCrop *:before,.ReactCrop *:after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{overflow:hidden;max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{touch-action:none}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px)}.ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translateZ(0);cursor:move}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:1px solid var(--rc-border-color);opacity:.3}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed white}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){animation:marching-ants 1s;background-image:linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%);background-size:10px 1px,10px 1px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;color:#fff;animation-play-state:running;animation-timing-function:linear;animation-iteration-count:infinite}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute;width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color)}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{top:0;left:0;transform:translate(-50%,-50%);cursor:nw-resize}.ReactCrop .ord-n{top:0;left:50%;transform:translate(-50%,-50%);cursor:n-resize}.ReactCrop .ord-ne{top:0;right:0;transform:translate(50%,-50%);cursor:ne-resize}.ReactCrop .ord-e{top:50%;right:0;transform:translate(50%,-50%);cursor:e-resize}.ReactCrop .ord-se{bottom:0;right:0;transform:translate(50%,50%);cursor:se-resize}.ReactCrop .ord-s{bottom:0;left:50%;transform:translate(-50%,50%);cursor:s-resize}.ReactCrop .ord-sw{bottom:0;left:0;transform:translate(-50%,50%);cursor:sw-resize}.ReactCrop .ord-w{top:50%;left:0;transform:translate(-50%,-50%);cursor:w-resize}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media(pointer:coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--theme-text-primary);background:var(--theme-body-bg);--banner-h: 0px;--theme-sidebar-bg: rgba(13,26,46,.96);--theme-sidebar-border: rgba(255,255,255,.15);--theme-panel-bg: rgba(15,23,42,.97);--theme-panel-border: rgba(255,255,255,.15);--theme-settings-sidebar-bg: rgba(0,0,0,.85);--theme-settings-sidebar-border: rgba(255,255,255,.12);--theme-timeline-bg: #0d1a2e;--theme-timeline-header-bg: rgba(13,26,46,.97);--theme-timeline-header-border: rgba(255,255,255,.1);--theme-card-bg: rgba(255,255,255,.05);--theme-card-border: rgba(255,255,255,.1);--theme-served-bg: rgba(2,6,23,.7);--theme-served-border: rgba(255,255,255,.16);--theme-btn-primary: linear-gradient(135deg,#dc2626,#16a34a);--theme-btn-ghost-bg: rgba(255,255,255,.08);--theme-btn-ghost-border: rgba(255,255,255,.16);--theme-nav-btn-bg: rgba(255,255,255,.08);--theme-nav-btn-border: rgba(255,255,255,.2);--theme-input-bg: rgba(2,6,23,.7);--theme-input-border: rgba(255,255,255,.16);--theme-delete-btn: #8b1e1e;--theme-divider: rgba(255,255,255,.1);--theme-cover-empty-bg: rgba(255,255,255,.06);--theme-cover-empty-border: rgba(255,255,255,.18);--theme-cover-empty-text: rgba(255,255,255,.45);--theme-popover-bg: #1e2433;--theme-text-primary: #f8fafc;--theme-text-secondary: #cbd5e1;--theme-text-muted: rgba(255,255,255,.45);--theme-settings-active-bg: rgba(59,130,246,.2);--theme-settings-active-border: rgba(59,130,246,.45);--theme-settings-active-text: #93c5fd;--theme-body-bg: radial-gradient(circle at top,#183a5a,#08111f 55%,#030712);--theme-globe-bg: radial-gradient(circle at center,#12395a 0%,#06111f 55%,#020711 100%);--theme-title-glow: none;--theme-card-hover-border: rgba(255,255,255,.22)}[data-theme=christmas]{--theme-sidebar-bg: #08110d;--theme-sidebar-border: #c9a03a;--theme-panel-bg: rgba(12,20,16,.92);--theme-panel-border: rgba(201,160,58,.35);--theme-settings-sidebar-bg: #08110d;--theme-settings-sidebar-border: #c9a03a;--theme-timeline-bg: #080a07;--theme-timeline-header-bg: rgba(8,10,8,.97);--theme-timeline-header-border: rgba(201,160,58,.35);--theme-card-bg: rgba(12,20,16,.92);--theme-card-border: rgba(201,160,58,.35);--theme-served-bg: rgba(8,17,13,.8);--theme-served-border: rgba(201,160,58,.38);--theme-btn-primary: linear-gradient(135deg,#ddb253 0%,#b8892d 100%);--theme-btn-ghost-bg: rgba(221,178,83,.1);--theme-btn-ghost-border: rgba(221,178,83,.4);--theme-nav-btn-bg: rgba(255,255,255,.05);--theme-nav-btn-border: rgba(201,160,58,.42);--theme-input-bg: rgba(8,17,13,.95);--theme-input-border: rgba(201,160,58,.45);--theme-delete-btn: #8b1e2d;--theme-divider: rgba(201,160,58,.18);--theme-cover-empty-bg: rgba(221,178,83,.06);--theme-cover-empty-border: rgba(221,178,83,.38);--theme-cover-empty-text: rgba(221,178,83,.65);--theme-popover-bg: rgba(12,20,16,.98);--theme-text-primary: #f6f0df;--theme-text-secondary: #d8c9a6;--theme-text-muted: #b9ab87;--theme-settings-active-bg: rgba(139,30,45,.22);--theme-settings-active-border: rgba(139,30,45,.58);--theme-settings-active-text: #f0a8b0;--theme-title-glow: 0 0 10px rgba(221,178,83,.25);--theme-card-hover-border: rgba(221,178,83,.6);--theme-body-bg: radial-gradient(circle at center,#0d0002 0%,#050000 35%,#000000 100%);--theme-globe-bg: radial-gradient(circle 22px at 12% 28%, rgba(255,200,80,.32) 0%, transparent 100%), radial-gradient(circle 13px at 22% 72%, rgba(240,180,60,.26) 0%, transparent 100%), radial-gradient(circle 28px at 6% 48%, rgba(200,150,50,.22) 0%, transparent 100%), radial-gradient(circle 10px at 28% 18%, rgba(255,210,90,.28) 0%, transparent 100%), radial-gradient(circle 16px at 64% 12%, rgba(220,170,60,.18) 0%, transparent 100%), radial-gradient(circle 20px at 72% 86%, rgba(255,190,70,.2) 0%, transparent 100%), radial-gradient(circle 12px at 18% 88%, rgba(240,200,80,.22) 0%, transparent 100%), radial-gradient(circle 14px at 78% 24%, rgba(210,160,55,.16) 0%, transparent 100%), radial-gradient(circle 9px at 36% 56%, rgba(255,220,100,.18) 0%, transparent 100%), radial-gradient(circle 24px at 52% 80%, rgba(200,140,40,.16) 0%, transparent 100%), radial-gradient(circle 7px at 84% 48%, rgba(240,190,70,.18) 0%, transparent 100%), radial-gradient(circle 18px at 4% 72%, rgba(220,160,50,.22) 0%, transparent 100%), radial-gradient(ellipse 80% 85% at 40% 54%, rgba(235,128,6,.9) 0%, rgba(200,88,4,.65) 25%, rgba(145,45,2,.35) 48%, rgba(70,18,1,.14) 65%, transparent 80%), radial-gradient(ellipse 110% 110% at 40% 55%, rgba(160,55,3,.3) 30%, rgba(80,20,1,.14) 58%, transparent 78%), radial-gradient(circle at center, #060200 0%, #030100 60%, #000000 100%)}[data-theme=midnight]{--theme-sidebar-bg: rgba(18,20,24,.97);--theme-sidebar-border: rgba(255,255,255,.1);--theme-panel-bg: rgba(20,22,28,.97);--theme-panel-border: rgba(255,255,255,.1);--theme-settings-sidebar-bg: rgba(12,14,18,.92);--theme-settings-sidebar-border: rgba(255,255,255,.08);--theme-timeline-bg: #0f1014;--theme-timeline-header-bg: rgba(18,20,24,.97);--theme-timeline-header-border: rgba(255,255,255,.08);--theme-card-bg: rgba(255,255,255,.04);--theme-card-border: rgba(255,255,255,.09);--theme-served-bg: rgba(0,0,0,.45);--theme-served-border: rgba(255,255,255,.12);--theme-btn-primary: linear-gradient(135deg,#3a3d48,#52566a);--theme-btn-ghost-bg: rgba(255,255,255,.06);--theme-btn-ghost-border: rgba(255,255,255,.12);--theme-nav-btn-bg: rgba(255,255,255,.06);--theme-nav-btn-border: rgba(255,255,255,.15);--theme-input-bg: rgba(0,0,0,.4);--theme-input-border: rgba(255,255,255,.12);--theme-delete-btn: #7a1f1f;--theme-divider: rgba(255,255,255,.08);--theme-cover-empty-bg: rgba(255,255,255,.04);--theme-cover-empty-border: rgba(255,255,255,.14);--theme-cover-empty-text: rgba(255,255,255,.38);--theme-popover-bg: #1a1c22;--theme-text-primary: #e8eaf0;--theme-text-secondary: #9aa0b0;--theme-text-muted: rgba(200,205,215,.45);--theme-settings-active-bg: rgba(148,163,184,.12);--theme-settings-active-border: rgba(148,163,184,.35);--theme-settings-active-text: #cbd5e1;--theme-body-bg: radial-gradient(circle at top,#191b23,#0d0f14 55%,#060709);--theme-globe-bg: radial-gradient(circle at center,#1a1c24 0%,#0f1014 55%,#060709 100%);--theme-title-glow: none;--theme-card-hover-border: rgba(255,255,255,.18)}.sandbox-banner{position:fixed;top:0;left:0;right:0;z-index:9999;background:#c0392b;color:#fff;text-align:center;padding:5px 16px;font-size:.82rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;display:flex;flex-direction:column;gap:1px;line-height:1.3}.sandbox-banner-sub{font-size:.68rem;font-weight:500;letter-spacing:.02em;text-transform:none;opacity:.9}.maintenance-banner{position:fixed;top:var(--banner-h);left:0;right:0;z-index:9998;background:#d35400;color:#fff;text-align:center;padding:6px 16px;font-size:.84rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;display:flex;flex-direction:column;gap:1px;line-height:1.4;box-shadow:0 2px 8px #0006}.maintenance-banner-sub{font-size:.7rem;font-weight:500;letter-spacing:.02em;text-transform:none;opacity:.92}.maintenance-banner--countdown{background:#c0762b}.version-banner{position:fixed;bottom:16px;left:50%;transform:translate(-50%);z-index:9000;background:var(--theme-panel-bg);border:1px solid rgba(99,179,237,.5);color:#e2e8f0;padding:10px 18px;border-radius:10px;font-size:.83rem;display:flex;align-items:center;gap:14px;box-shadow:0 4px 24px #00000080;white-space:nowrap}.version-banner-btn{background:#3b82f6;color:#fff;border:none;padding:5px 14px;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer}.version-banner-btn:hover{background:#2563eb}.maintenance-controls{margin-top:14px}.maint-btn{padding:8px 18px;border-radius:7px;font-size:.85rem;font-weight:600;cursor:pointer;border:none;transition:opacity .15s}.maint-btn:disabled{opacity:.5;cursor:not-allowed}.maint-btn--disable{background:#2ecc71;color:#fff}.maint-btn--disable:hover:not(:disabled){background:#27ae60}.maint-btn--now{background:#e74c3c;color:#fff}.maint-btn--now:hover:not(:disabled){background:#c0392b}.maint-btn--schedule{background:#f39c12;color:#fff}.maint-btn--schedule:hover:not(:disabled){background:#d68910}.maint-btn--cancel{background:var(--theme-btn-ghost-bg);color:var(--theme-text-primary)}.maint-btn--cancel:hover{background:#fff3}.maint-countdown-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.maint-countdown-label{font-size:.95rem;font-weight:600;color:#f39c12}.maint-schedule{display:flex;flex-direction:column;gap:10px}.maint-duration-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.maint-dur-btn{background:var(--theme-nav-btn-bg);color:var(--theme-text-secondary);border:1px solid var(--theme-nav-btn-border);padding:5px 13px;border-radius:6px;font-size:.82rem;font-weight:600;cursor:pointer}.maint-dur-btn:hover{background:#ffffff24}.maint-dur-btn--active{background:#f39c1238;border-color:#f39c12;color:#f39c12}.maint-dur-input{width:80px;background:var(--theme-input-bg);border:1px solid var(--theme-input-border);color:var(--theme-text-primary);padding:5px 9px;border-radius:6px;font-size:.82rem}.maint-action-row{display:flex;gap:10px;flex-wrap:wrap}.active-users-count{font-size:.78rem;font-weight:500;background:var(--theme-btn-ghost-bg);padding:2px 9px;border-radius:20px;margin-left:8px;vertical-align:middle}.active-users-list{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.active-user-card{background:var(--theme-card-bg);border:1px solid var(--theme-card-border);border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:4px}.active-user-main{display:flex;align-items:center;gap:10px}.active-user-name{font-weight:600;font-size:.9rem}.active-user-role{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:10px;text-transform:capitalize;color:#fff}.active-user-meta{font-size:.75rem;color:#ffffff80;display:flex;gap:14px;flex-wrap:wrap}.active-user-page{color:#ffffffa6}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--theme-body-bg)}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%);padding:32px;border-radius:28px;background:#0f172ae0;border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 80px #00000073;text-align:center}.ornament{font-size:72px;filter:drop-shadow(0 12px 30px rgba(125,211,252,.3))}h1,h2,h3,p{margin-top:0}p{color:var(--theme-text-secondary);line-height:1.5}form{display:grid;gap:12px}input,textarea,select{width:100%;border-radius:14px;border:1px solid var(--theme-input-border);background:var(--theme-input-bg);color:var(--theme-text-primary);padding:12px 14px;outline:none}textarea{resize:vertical}button{border-radius:14px;padding:12px 16px;background:var(--theme-btn-primary);color:#fff;font-weight:700}button.ghost{background:var(--theme-btn-ghost-bg);border:1px solid var(--theme-btn-ghost-border)}[data-theme=christmas] button:hover:not(:disabled){filter:brightness(1.08)}.error{color:#fecaca}.success{color:#bbf7d0}.app-shell{width:min(1250px,100%);margin:0 auto;padding:24px}header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.grid{display:grid;grid-template-columns:380px 1fr;gap:22px}.panel{background:#0f172ad1;border:1px solid rgba(255,255,255,.12);border-radius:28px;padding:22px;box-shadow:0 20px 70px #00000052}.globe-panel{min-height:720px}.globe{height:260px;display:grid;place-items:center;margin-bottom:16px;border-radius:999px;background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.22),transparent 22%),radial-gradient(circle,#0ea5e9,#14532d 45%,#0f172a 75%);position:relative;overflow:hidden;box-shadow:inset -30px -40px 60px #0006,0 30px 70px #0ea5e92e}.globe span{font-size:120px}.globe:after{content:"";position:absolute;top:18px;right:18px;bottom:18px;left:18px;border:2px solid rgba(255,255,255,.12);border-radius:999px}.location-form{display:grid;grid-template-columns:1fr auto;gap:10px;margin-bottom:14px}.location-list{display:grid;gap:9px;max-height:350px;overflow:auto;padding-right:4px}.location-list button,.history button{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;background:var(--theme-card-bg);border:1px solid var(--theme-card-border);color:var(--theme-text-primary)}.location-list button.active{outline:2px solid rgba(34,197,94,.75);background:#16a34a2e}.location-list small{color:#cbd5e1;white-space:nowrap}.sidebar-header{margin-bottom:18px}.sidebar-header-controls{display:flex;justify-content:flex-end;gap:8px;align-items:center;margin-bottom:10px}.sidebar-header-body{display:flex;gap:16px;align-items:flex-start}.sidebar-header-left{flex:1 1 0;min-width:0}.sidebar-edit-btn{display:inline-block;margin-top:8px;height:32px;padding:0 14px;border-radius:999px;border:1px solid var(--theme-nav-btn-border);background:transparent;color:var(--theme-text-secondary);cursor:pointer;font-size:.875rem}.sidebar-edit-btn:hover{background:#ffffff1a;color:#fff}.meal-form label{font-weight:800;color:#e2e8f0}.history{display:grid;gap:10px}.history button{display:grid;justify-content:stretch}.history span{color:#cbd5e1}.empty{min-height:520px;display:grid;place-content:center;text-align:center}@media(max-width:900px){header{flex-direction:column;align-items:stretch}.grid{grid-template-columns:1fr}.globe-panel{min-height:auto}}.globe-fullscreen{min-height:100vh;width:100vw;overflow:hidden;background:var(--theme-globe-bg);position:relative}.floating-header{position:fixed;top:calc(24px + var(--banner-h));left:32px;right:32px;z-index:10;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.floating-header button{pointer-events:auto}.globe-title-block h1{color:var(--theme-text-primary);text-shadow:var(--theme-title-glow)}.globe-title-block p{color:var(--theme-text-secondary)}.globe-search-box{pointer-events:auto;position:relative;flex:1;max-width:320px;margin:0 16px}.globe-search-input{width:100%;padding:8px 14px;border-radius:999px;border:1px solid var(--theme-input-border);background:var(--theme-input-bg);color:var(--theme-text-primary);font-size:.9rem;outline:none;box-sizing:border-box}.globe-search-input::placeholder{color:var(--theme-text-muted)}.globe-search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--theme-panel-bg);border:1px solid var(--theme-panel-border);border-radius:12px;list-style:none;margin:0;padding:6px 0;z-index:50;overflow:hidden}.globe-search-result-item{display:flex;flex-direction:column;padding:9px 14px;cursor:pointer;gap:3px}.globe-search-result-item:hover{background:var(--theme-btn-ghost-bg)}.globe-search-result-main{display:flex;align-items:center;gap:7px}.globe-search-result-badge{font-size:.6rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:999px;white-space:nowrap;flex-shrink:0;line-height:1.5}.badge-country{background:#3b82f633;color:#93c5fd;border:1px solid rgba(59,130,246,.4)}.badge-state{background:#8b5cf633;color:#c4b5fd;border:1px solid rgba(139,92,246,.4)}.badge-theme{background:#dc262633;color:#fca5a5;border:1px solid rgba(220,38,38,.4)}.badge-memory{background:#22c55e33;color:#86efac;border:1px solid rgba(34,197,94,.4)}.badge-recipe{background:#f59e0b33;color:#fcd34d;border:1px solid rgba(245,158,11,.4)}.globe-search-result-name{color:var(--theme-text-primary);font-size:.88rem;font-weight:500}.globe-search-result-meta{font-size:.73rem;color:var(--theme-text-muted);padding-left:1px}.globe-tooltip{position:fixed;background:var(--theme-panel-bg);color:var(--theme-text-primary);padding:5px 12px;border-radius:8px;font-size:.85rem;pointer-events:none;z-index:50;border:1px solid var(--theme-panel-border);white-space:nowrap}.fullscreen-globe{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1}.meal-sidebar{position:fixed;top:var(--banner-h);right:0;width:min(520px,92vw);height:calc(100vh - var(--banner-h));z-index:20;padding:28px;background:var(--theme-sidebar-bg);border-left:1px solid var(--theme-sidebar-border);box-shadow:-20px 0 60px #00000073;overflow-y:auto}.globe-drilldown-header{position:fixed;top:calc(125px + var(--banner-h));left:28px;z-index:15;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.back-to-world{padding:8px 16px;border-radius:999px;border:1px solid var(--theme-btn-ghost-border);background:var(--theme-btn-ghost-bg);color:var(--theme-text-primary);cursor:pointer;font-size:.84rem;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.back-to-world:hover{background:#fff3}.globe-mode-banner{padding:5px 14px;border-radius:999px;background:var(--theme-settings-active-bg);border:1px solid var(--theme-settings-active-border);color:var(--theme-settings-active-text);font-size:.78rem;font-weight:600;letter-spacing:.03em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.sidebar-parent-label{font-size:.72rem;font-weight:600;color:#ffffff73;letter-spacing:.04em;text-transform:uppercase;margin:0 0 2px;line-height:1}.delete-button{margin-top:10px;width:100%;background:var(--theme-delete-btn)}.settings-panel{position:fixed;top:100px;right:30px;width:500px;max-height:80vh;overflow-y:auto;background:var(--theme-panel-bg);border:1px solid var(--theme-panel-border);border-radius:16px;padding:20px;z-index:1000}.settings-header{display:flex;justify-content:space-between;align-items:center}.user-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--theme-divider)}.role-pill{padding:4px 10px;border-radius:999px;background:var(--theme-nav-btn-bg);border:1px solid var(--theme-nav-btn-border);text-transform:capitalize}.create-user-form{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.create-user-modal{background:var(--theme-panel-bg);border:1px solid var(--theme-panel-border);border-radius:12px;padding:28px;width:100%;max-width:480px;display:flex;flex-direction:column;gap:16px;box-shadow:0 8px 32px #00000080}.create-user-modal h3{margin:0;font-size:1.05rem;color:#ffffffe6}.create-user-modal-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.create-user-modal-fields label{display:block;font-size:11px;color:#ffffff73;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.create-user-modal-fields input,.create-user-modal-fields select{width:100%}.create-user-modal-fields .full-width{grid-column:1 / -1}.create-user-modal-actions{display:flex;gap:8px;margin-top:4px}.settings-menu{display:flex;flex-direction:column;gap:12px}.settings-menu button,.settings-subheader button{padding:12px;border-radius:12px}.settings-subheader{display:flex;justify-content:space-between;align-items:center}.header-actions{display:flex;gap:12px;align-items:center}.audit-row{display:grid;grid-template-columns:180px 260px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--theme-divider);font-size:14px}.audit-row div{overflow-wrap:anywhere}.user-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-top:4px}.user-card{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--theme-card-border);border-radius:12px;background:var(--theme-card-bg);transition:background .15s,border-color .15s;min-width:0}.user-card:hover{background:var(--theme-btn-ghost-bg);border-color:var(--theme-card-hover-border)}.user-card-info{flex:1;min-width:0}.user-card-name{font-size:.88rem;font-weight:600;color:#ffffffe6;display:flex;align-items:flex-start;flex-wrap:wrap;gap:5px;margin-bottom:3px;word-break:break-word}.user-card-meta{display:flex;align-items:center;gap:6px;margin-bottom:3px;flex-wrap:wrap}.account-avatar--sm{width:36px;height:36px;flex-shrink:0}.account-avatar--sm .account-avatar-initials{font-size:.85rem}.account-avatar--lg{width:72px;height:72px;flex-shrink:0}.account-avatar--lg .account-avatar-initials{font-size:1.5rem}.user-modal{background:var(--theme-panel-bg);border:1px solid var(--theme-panel-border);border-radius:14px;padding:0;width:100%;max-width:460px;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000080;overflow:hidden}.user-modal-header{display:flex;align-items:center;gap:16px;padding:24px 24px 20px;position:relative}.user-modal-identity{flex:1;min-width:0}.user-modal-name{font-size:1.1rem;font-weight:700;color:#fffffff2;display:flex;align-items:center;gap:8px;margin-bottom:5px}.user-modal-close{position:absolute;top:16px;right:16px;background:none;border:none;color:#ffffff59;font-size:1rem;cursor:pointer;padding:4px 8px;border-radius:6px;min-width:0}.user-modal-close:hover{background:#ffffff14;color:#ffffffb3}.user-modal-divider{height:1px;background:var(--theme-divider);margin:0}.user-modal-section{padding:16px 24px;display:flex;flex-direction:column;gap:12px}.user-modal-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:#ffffff59}.user-modal-actions{display:flex;flex-wrap:wrap;gap:8px}.user-modal-actions button,.user-modal-section>button{min-width:0;padding:7px 14px;font-size:.83rem}.user-modal-section select{min-width:140px}button.danger{background:#e74c3c26;border-color:#e74c3c66;color:#e74c3c}button.danger:hover{background:#e74c3c47}.user-edit-form{width:100%;display:flex;flex-direction:column;gap:12px;padding:14px;background:var(--theme-card-bg);border-radius:10px;border:1px solid var(--theme-card-border)}.user-edit-avatar-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.user-edit-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.user-edit-fields label{display:block;font-size:11px;color:#ffffff73;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.user-edit-fields input{width:100%}@media(max-width:700px){.user-edit-fields{grid-template-columns:1fr}}.disabled-label{display:inline-block;margin-top:6px;padding:4px 8px;border-radius:6px;background:#f003;color:#ff8080;font-size:12px;font-weight:600}.timeline-page{min-height:calc(100vh - var(--banner-h));margin-top:var(--banner-h);background:var(--theme-timeline-bg);color:var(--theme-text-primary)}.timeline-header{display:flex;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid var(--theme-timeline-header-border);position:sticky;top:var(--banner-h);background:var(--theme-timeline-header-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10}.timeline-title{font-size:1.1rem;font-weight:600;margin:0}.timeline-back{color:#ffffff8c;font-size:.85rem;flex-shrink:0}.timeline-body{padding:0 20px 60px;max-width:1100px;margin:0 auto}.timeline-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;padding-top:20px}.timeline-card{display:flex;flex-direction:column;width:100%;background:var(--theme-card-bg);border:1px solid var(--theme-card-border);border-radius:12px;overflow:hidden;cursor:pointer;text-align:left;transition:background .15s,border-color .15s;color:inherit}.timeline-card:hover{background:var(--theme-btn-ghost-bg);border-color:var(--theme-card-hover-border)}.timeline-tile-year{padding:8px 10px 4px;font-size:.7rem;font-weight:700;letter-spacing:.04em;color:var(--theme-text-muted)}.timeline-card-photo{width:100%;aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--theme-cover-empty-bg);flex-shrink:0}.timeline-card-photo img{width:100%;height:100%;display:block;object-fit:contain}.timeline-card-placeholder{width:100%;aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;background:var(--theme-cover-empty-bg);color:var(--theme-cover-empty-text);font-size:2rem;opacity:.5}.timeline-card-body{padding:10px 12px 12px;overflow:hidden}.timeline-card-name{display:block;font-size:.88rem;font-weight:600;color:var(--theme-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.timeline-card-foot{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.timeline-card-counts{font-size:.72rem;color:var(--theme-text-muted)}.recipe-image-clickable{cursor:zoom-in}.timeline-empty{padding:48px 20px;text-align:center;color:#ffffff61;font-size:.9rem}@media(max-width:540px){.timeline-body{padding:0 12px 48px}.timeline-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}}.settings-page{display:flex;height:calc(100vh - var(--banner-h));width:100vw;margin-top:var(--banner-h)}.settings-sidebar{width:260px;min-width:260px;display:flex;flex-direction:column;gap:12px;padding:24px;background:var(--theme-settings-sidebar-bg);border-right:1px solid var(--theme-settings-sidebar-border)}.settings-sidebar h1{margin-bottom:20px}.settings-sidebar button{width:100%;text-align:left}.settings-content{flex:1;overflow-y:auto;padding:30px}.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-top:20px}.status-card{padding:20px;border-radius:16px;background:var(--theme-card-bg);border:1px solid var(--theme-card-border)}.status-card span{display:block;opacity:.75;margin-bottom:10px}.status-card strong{font-size:32px}.settings-content h3{margin-top:28px;margin-bottom:12px}.backup-row{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;gap:20px;align-items:start;padding:12px;margin-bottom:8px;border:1px solid var(--theme-card-border);border-radius:10px}.backup-actions{display:flex;flex-direction:row;flex-wrap:nowrap;gap:10px;justify-content:flex-end;align-items:center;width:max-content}.backup-row .backup-actions button,.backup-row .backup-actions .delete-button,.backup-row .backup-actions .ghost{box-sizing:border-box!important;width:130px!important;min-width:130px!important;max-width:130px!important;height:48px!important;min-height:48px!important;max-height:48px!important;padding:0 14px!important;margin:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;white-space:nowrap!important}.status-grid.system-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.audit-filters{display:grid;grid-template-columns:200px 200px 1fr;gap:12px;margin:18px 0}.audit-filters select,.audit-filters input{padding:10px;border-radius:10px;border:1px solid var(--theme-input-border);background:var(--theme-input-bg);color:var(--theme-text-primary)}.recent-activity-list{display:grid;gap:12px;margin-top:12px}.recent-activity-card{padding:14px;border-radius:14px;border:1px solid var(--theme-card-border);background:var(--theme-card-bg)}.recent-activity-card strong{display:block;margin-bottom:4px}.recent-activity-card span{display:block;opacity:.75;margin-bottom:6px}.recent-activity-card p{margin:0 0 6px}.recent-activity-card small{opacity:.65}.status-card small{display:block;margin-top:8px;opacity:.7}.readonly-notice{padding:10px;border-radius:10px;background:var(--theme-btn-ghost-bg);color:var(--theme-text-primary);font-size:14px}.year-card{width:100%;text-align:left;padding:12px 16px;margin-bottom:8px;border-radius:12px;border:1px solid var(--theme-card-border);background:var(--theme-card-bg);cursor:pointer}.year-card:hover{background:#ffffff1a}.meal-view section{margin-top:18px}.meal-view h4{margin-bottom:6px;opacity:.8}.meal-view ul{padding-left:20px}.meal-view p{white-space:pre-wrap}.view-card{margin-top:16px;padding:14px;border-radius:12px;background:var(--theme-card-bg);border:1px solid var(--theme-card-border)}.year-subtitle{margin-top:4px;font-size:1rem;opacity:.85}.meal-photos-section{padding:12px 14px}.meal-photos-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.meal-photos-header h4{margin:0}.meal-photos-count{font-size:.75rem;color:#ffffff73}.meal-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px}.meal-photo-thumb-wrap{position:relative;aspect-ratio:1}.meal-photo-thumb-btn{position:relative;width:100%;height:100%;padding:0;border:none;background:#ffffff0f;border-radius:8px;overflow:hidden;cursor:pointer;transition:opacity .15s}.meal-photo-thumb-btn:before{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;background-image:var(--thumb-src);background-size:cover;background-position:center;filter:blur(12px) brightness(.3);z-index:0;pointer-events:none}.meal-photo-thumb-wrap:hover .meal-photo-thumb-btn{opacity:.85}.meal-photo-thumb{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;display:block}.meal-photo-delete-btn{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;border:none;background:#000000b3;color:#fff;font-size:.95rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.meal-photo-thumb-wrap:hover .meal-photo-delete-btn,.meal-photo-thumb-wrap:focus-within .meal-photo-delete-btn{opacity:1}.cover-photo-slot{flex-shrink:0}.cover-photo-empty-btn{display:flex;align-items:center;justify-content:center;width:120px;aspect-ratio:1 / 1;border-radius:10px;background:var(--theme-cover-empty-bg);border:2px dashed var(--theme-cover-empty-border);color:var(--theme-cover-empty-text);font-size:11px;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background .15s,border-color .15s;padding:0}.cover-photo-empty-btn:hover{background:#ffffff1a;border-color:#ffffff52}.cover-photo-has-photo{position:relative;width:120px;aspect-ratio:1 / 1}.cover-photo-image-wrap{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:10px;overflow:hidden}.cover-photo-lightbox-btn{display:block;position:absolute;top:0;right:0;bottom:0;left:0;padding:0;border:none;background:transparent;cursor:pointer;z-index:1}.cover-photo-img{width:100%;height:100%;object-fit:cover;display:block}.cover-photo-hover-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,#000000b8,#0000);display:flex;gap:4px;align-items:flex-end;padding:6px;z-index:2;opacity:0;transition:opacity .15s;pointer-events:none}.cover-photo-image-wrap:hover .cover-photo-hover-overlay{opacity:1}.cover-photo-overlay-btn{pointer-events:all;flex:1;font-size:10px;font-weight:600;padding:3px 4px;border-radius:5px;border:1px solid rgba(255,255,255,.3);background:#00000080;color:#fff;cursor:pointer;text-align:center}.cover-photo-overlay-btn.remove{color:#f87171e6;border-color:#f871714d}.cover-photo-menu-btn{display:none;position:absolute;bottom:5px;right:5px;width:28px;height:28px;border-radius:6px;border:1px solid rgba(255,255,255,.25);background:#00000094;color:#fff;font-size:14px;align-items:center;justify-content:center;cursor:pointer;z-index:3;padding:0;line-height:1}@media(hover:none){.cover-photo-menu-btn{display:flex}.cover-photo-hover-overlay{display:none}}.cover-photo-popover{position:absolute;top:calc(100% + 4px);right:0;background:var(--theme-popover-bg);border:1px solid var(--theme-panel-border);border-radius:8px;overflow:hidden;z-index:20;min-width:152px}.cover-photo-popover button{display:block;width:100%;padding:10px 14px;text-align:left;font-size:13px;background:transparent;border:none;color:#fff;cursor:pointer}.cover-photo-popover button:hover,.cover-photo-popover button:active{background:#ffffff14}.cover-photo-popover .popover-remove{color:#f87171}@media(max-width:640px){.cover-photo-empty-btn,.cover-photo-has-photo{width:88px}}.meal-photo-cover-btn,.meal-photo-cover-badge{position:absolute;bottom:3px;left:3px;width:22px;height:22px;border-radius:4px;background:#000000a6;display:flex;align-items:center;justify-content:center;font-size:.75rem;line-height:1}.meal-photo-cover-btn{border:none;cursor:pointer;color:#ffffff73;opacity:0;transition:opacity .15s,color .15s}.meal-photo-cover-btn.is-cover{color:#fbbf24;opacity:1}.meal-photo-thumb-wrap:hover .meal-photo-cover-btn,.meal-photo-thumb-wrap:focus-within .meal-photo-cover-btn{opacity:1}.meal-photo-cover-badge{color:#fbbf24;pointer-events:none}.meal-photo-delete-confirm{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;border-radius:8px;background:#000000d1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.meal-photo-delete-yes{background:#e74c3c;color:#fff;border:none;border-radius:5px;padding:4px 12px;font-size:.75rem;font-weight:700;cursor:pointer}.meal-photo-delete-no{background:#ffffff1f;color:#fff;border:none;border-radius:5px;padding:4px 12px;font-size:.75rem;cursor:pointer}.meal-photo-add-btn{aspect-ratio:1;border:2px dashed rgba(255,255,255,.2);border-radius:8px;background:transparent;color:#ffffff59;font-size:1.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s}.meal-photo-add-btn:hover:not(:disabled){border-color:#fff6;color:#fff9}.meal-photo-add-btn:disabled{cursor:not-allowed;opacity:.5}.meal-photos-empty-upload{width:100%;padding:18px;border:2px dashed rgba(255,255,255,.18);border-radius:10px;background:transparent;color:#ffffff73;font-size:.88rem;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s}.meal-photos-empty-upload:hover:not(:disabled){border-color:#ffffff59;color:#ffffffb3}.meal-photos-empty-upload:disabled{opacity:.5;cursor:not-allowed}.photo-crop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;background:#000000f0;display:flex;align-items:center;justify-content:center;padding:16px}.photo-crop-modal{background:#0f172a;border:1px solid rgba(255,255,255,.12);border-radius:16px;width:100%;max-width:540px;max-height:calc(100dvh - 32px);display:flex;flex-direction:column;overflow:hidden}.photo-crop-header{padding:14px 16px 10px;display:flex;flex-direction:column;gap:2px;border-bottom:1px solid rgba(255,255,255,.07)}.photo-crop-counter{font-size:.75rem;color:#ffffff73;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.photo-crop-hint{font-size:.82rem;color:#ffffff8c}.photo-crop-canvas{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#000;overflow:auto;padding:8px}.photo-crop-img{max-width:100%;max-height:55dvh;display:block}.photo-crop-canvas .ReactCrop__crop-selection{border-color:#ffffffbf;box-shadow:0 0 0 9999em #00000073}.photo-crop-actions{padding:12px 16px;display:flex;align-items:center;gap:8px;border-top:1px solid rgba(255,255,255,.08);flex-wrap:wrap}.photo-crop-actions-right{display:flex;gap:8px;margin-left:auto}.photo-crop-size-error{padding:8px 16px 12px;font-size:13px;color:#f87171;text-align:center}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;background:#000000eb;display:flex;align-items:center;justify-content:center}.lightbox-content{position:relative;max-width:95vw;max-height:95dvh;display:flex;align-items:center;justify-content:center}.lightbox-img{max-width:95vw;max-height:95dvh;object-fit:contain;border-radius:6px;display:block;-webkit-user-select:none;user-select:none}.lightbox-close{position:fixed;top:14px;right:18px;width:40px;height:40px;border-radius:50%;border:none;background:#0009;color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1}.lightbox-nav{position:fixed;top:50%;transform:translateY(-50%);background:#00000080;border:none;color:#fff;font-size:2.2rem;width:44px;height:64px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;z-index:1;line-height:1}.lightbox-nav--prev{left:8px}.lightbox-nav--next{right:8px}.lightbox-nav:hover{background:#000000bf}.lightbox-dots{position:fixed;bottom:18px;left:50%;transform:translate(-50%);display:flex;gap:8px;z-index:1}.lightbox-dot{width:8px;height:8px;border-radius:50%;border:none;background:#ffffff59;cursor:pointer;padding:0}.lightbox-dot--active{background:#fff}@media(max-width:480px){.meal-photo-grid{grid-template-columns:repeat(3,1fr)}.lightbox-nav{width:36px;height:52px;font-size:1.8rem}}.recipe-filters{display:grid;gap:8px;margin-top:12px}.recipe-search,.recipe-category-filter{width:100%}.recipe-category-badge{display:inline-block;margin-top:4px;padding:2px 10px;border-radius:999px;background:#64748b2e;border:1px solid rgba(100,116,139,.4);color:#cbd5e1;font-size:.75rem;font-weight:600}.recipe-category-badge.cat-main-course{background:#dc26262e;border-color:#dc262666;color:#fca5a5}.recipe-category-badge.cat-side-dish{background:#d977062e;border-color:#d9770666;color:#fcd34d}.recipe-category-badge.cat-dessert{background:#ec48992e;border-color:#ec489966;color:#f9a8d4}.recipe-category-badge.cat-appetizer{background:#2563eb2e;border-color:#2563eb66;color:#93c5fd}.recipe-category-badge.cat-beverage{background:#0d94882e;border-color:#0d948866;color:#5eead4}.recipe-category-badge.cat-soup{background:#16a34a2e;border-color:#16a34a66;color:#86efac}.recipe-category-badge.cat-salad{background:#65a30d2e;border-color:#65a30d66;color:#bef264}.recipe-category-badge.cat-bread{background:#ea580c2e;border-color:#ea580c66;color:#fdba74}.recipe-category-badge.cat-sauce{background:#a864262e;border-color:#a8642666;color:#d4aa70}.recipe-category-badge.cat-other{background:#64748b2e;border-color:#64748b66;color:#cbd5e1}.recipe-list{display:grid;gap:10px;margin-top:14px}.recipe-card{padding:12px 16px;border-radius:12px;border:1px solid var(--theme-card-border);background:var(--theme-card-bg)}.version-milestone{display:block;margin-top:6px;opacity:.7;font-size:.85rem;font-weight:400}.served-recipes-box{padding:14px;border-radius:14px;border:1px solid var(--theme-served-border);background:var(--theme-served-bg)}.served-recipes-box p{margin-bottom:12px}.served-recipe-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.served-recipe-actions button{width:100%}.recipe-thumb{width:36px;height:36px;border-radius:6px;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center}.recipe-thumb-empty{background:#ffffff12}.recipe-thumb-img{width:100%;height:100%;object-fit:cover;display:block}.served-recipe-info{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.served-recipe-info .recipe-category-badge{margin-top:0}.served-recipe-link{display:flex;align-items:center;gap:10px;width:100%;background:var(--theme-card-bg)!important;border:1px solid var(--theme-card-border)!important;color:var(--theme-text-primary)!important;padding:10px 12px;margin-bottom:6px;text-align:left;border-radius:10px;font-weight:500}.served-recipe-link:hover{background:#ffffff14!important}.sidebar-back-button{height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--theme-nav-btn-border);background:var(--theme-nav-btn-bg);color:#fff;cursor:pointer;font-weight:600}.close-sidebar{position:static;width:40px;height:40px;padding:0;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--theme-nav-btn-border);background:var(--theme-nav-btn-bg);color:#fff;font-size:22px;line-height:1;cursor:pointer}.hamburger-button{width:44px;height:44px;border-radius:999px;border:1px solid var(--theme-nav-btn-border);background:var(--theme-nav-btn-bg);color:#fff;font-size:24px;cursor:pointer}.main-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:50}.main-menu-panel{position:fixed;top:0;right:0;width:320px;max-width:85vw;height:100vh;padding:20px;background:var(--theme-panel-bg);border-left:1px solid var(--theme-panel-border);display:flex;flex-direction:column;gap:12px}.main-menu-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.hamburger-button{width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--theme-nav-btn-border);background:var(--theme-nav-btn-bg);color:#fff;font-size:24px;line-height:1;cursor:pointer}.main-menu-panel{position:fixed;top:0;right:0;width:320px;max-width:85vw;height:100vh;padding:20px;background:var(--theme-panel-bg);border-left:1px solid var(--theme-panel-border);display:flex;flex-direction:column}.main-menu-nav{display:flex;flex-direction:column;gap:12px}.main-menu-actions{margin-top:auto;display:flex;flex-direction:column;gap:12px}.special-form{margin-top:12px;display:flex;flex-direction:column;gap:12px}.special-form-actions{display:flex;gap:10px}.special-location-row{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center}.special-location-btn{margin:0}.special-edit-btn{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:transparent;color:#ffffff73;font-size:.85rem;cursor:pointer;transition:background .15s,color .15s}.special-edit-btn:hover{background:#ffffff1a;color:#ffffffd9}.special-rename-form{grid-column:1 / -1;display:flex;gap:8px;align-items:center}.special-rename-input{flex:1;min-width:0;padding:7px 10px;border-radius:7px;border:1px solid var(--theme-input-border);background:var(--theme-input-bg);color:var(--theme-text-primary);font-size:.9rem}.special-rename-input:focus{outline:none;border-color:#64a0ff99;background:#ffffff1c}.special-rename-save{padding:6px 14px;border-radius:7px;border:none;background:#3b82f6;color:#fff;font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap}.special-rename-save:disabled{opacity:.4;cursor:not-allowed}.special-rename-save:hover:not(:disabled){background:#2563eb}.special-rename-cancel{padding:6px 10px;font-size:.82rem;white-space:nowrap}.special-delete-actions{display:flex;gap:10px;margin-top:12px}.special-delete-actions button{flex:1}.globe-pin{width:9px;height:9px;border-radius:999px;background:#fff;border:2px solid #d62828;box-shadow:0 0 6px #ffffffd9;transform:translate(-50%,-50%);cursor:pointer}.recipe-import-panel{background:var(--theme-card-bg);border:1px solid var(--theme-card-border);border-radius:10px;padding:14px;margin-bottom:18px}.recipe-import-tabs{display:flex;gap:6px;margin-bottom:12px}.recipe-import-tab{flex:1;padding:6px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.15);background:transparent;color:#ffffff80;font-size:.85rem;cursor:pointer}.recipe-import-tab.active{background:#ffffff1a;color:#fff;border-color:#ffffff4d}.recipe-import-body{display:flex;gap:8px;align-items:center}.recipe-import-input{flex:1;padding:8px 10px;border-radius:6px;border:1px solid var(--theme-input-border);background:var(--theme-input-bg);color:var(--theme-text-primary);font-size:.9rem}.recipe-import-input::placeholder{color:#ffffff4d}.recipe-import-file{flex:1;font-size:.85rem;color:#ffffffb3}.recipe-import-btn{padding:8px 16px;border-radius:6px;background:#c0392b;color:#fff;border:none;font-size:.9rem;cursor:pointer;white-space:nowrap}.recipe-import-btn:disabled{opacity:.4;cursor:not-allowed}.recipe-import-error{margin-top:8px;color:#e74c3c;font-size:.85rem}.recipe-import-success{margin-top:8px;color:#2ecc71;font-size:.85rem}.import-progress{margin-top:10px}.import-progress-bar{height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.import-progress-fill{height:100%;width:45%;border-radius:2px;background:linear-gradient(90deg,#e67e22,#f39c12,#e74c3c);animation:import-sweep 1.6s ease-in-out infinite}@keyframes import-sweep{0%{transform:translate(-120%)}to{transform:translate(280%)}}.import-progress-status{margin:6px 0 0;font-size:.8rem;color:#ffffff73;transition:opacity .3s}.recipe-instruction-step{margin-bottom:12px}.recipe-ingredient-line{margin-bottom:4px}.star-rating{display:flex;gap:2px;margin:4px 0 8px}.star-rating--lg .star-rating-btn{font-size:1.6rem}.star-rating--md .star-rating-btn{font-size:1.1rem}.star-rating-btn{background:none;border:none;cursor:pointer;color:#fff3;padding:0 1px;line-height:1;transition:color .1s,transform .1s}.star-rating-btn.filled{color:#f39c12}.star-rating-btn:hover:not(:disabled){transform:scale(1.2);color:#f39c12}.star-rating-btn:disabled{cursor:default}.recipe-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}.recipe-card-stars{display:flex;gap:1px}.recipe-card-star{font-size:.8rem;color:#fff3}.recipe-card-star.filled{color:#f39c12}.star-display{display:inline-flex;align-items:center;gap:1px}.star-display-cell{position:relative;display:inline-block;line-height:1}.star-display--lg .star-display-cell{font-size:1.6rem}.star-display--md .star-display-cell{font-size:1.1rem}.star-display--sm .star-display-cell{font-size:.85rem}.star-display-empty{display:block;color:#fff3}.star-display-filled{position:absolute;left:0;top:0;overflow:hidden;color:#f39c12;white-space:nowrap}.star-display-count{font-size:.72rem;color:#ffffff73;margin-left:3px}.recipe-rating-section{display:flex;align-items:center;gap:12px;margin:6px 0 14px;flex-wrap:wrap}.recipe-rating-display{display:flex;align-items:center;gap:8px}.recipe-rating-avg-label{font-size:.85rem;color:#fff9}.recipe-rating-none{font-size:.82rem;color:#ffffff59;font-style:italic}.rate-recipe-btn{font-size:.8rem;padding:4px 12px;background:var(--theme-nav-btn-bg);border:1px solid var(--theme-nav-btn-border);border-radius:4px;color:var(--theme-text-secondary);cursor:pointer;transition:background .15s;white-space:nowrap}.rate-recipe-btn:hover{background:#ffffff26;color:#fff}.rating-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:200;display:flex;align-items:center;justify-content:center}.rating-modal{background:var(--theme-panel-bg);border:1px solid var(--theme-panel-border);border-radius:10px;padding:24px 28px;min-width:280px;max-width:360px;display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:0 8px 32px #00000080}.rating-modal-title{margin:0;font-size:1.05rem;color:#ffffffe6}.rating-modal-recipe{margin:0;font-size:.85rem;color:#ffffff80;text-align:center}.rating-modal .star-rating{margin:4px 0}.rating-modal-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:4px}.recipe-image-container{margin:12px 0 16px;border-radius:10px;overflow:hidden;max-height:280px;background:#0003}.recipe-image{width:100%;max-height:280px;object-fit:contain;display:block;background:#00000026}.recipe-image-upload{margin-bottom:12px}.recipe-image-preview{width:100%;max-height:200px;object-fit:contain;border-radius:8px;display:block;margin-bottom:8px;background:#00000026}.recipe-image-upload-actions{display:flex;gap:8px;flex-wrap:wrap}.photo-search-panel{margin-top:12px;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:12px}.photo-search-bar{display:flex;gap:8px;align-items:center}.photo-search-input{flex:1;padding:6px 10px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#fff;font-size:.875rem}.photo-search-input:focus{outline:none;border-color:#ffffff4d}.photo-search-btn{padding:6px 14px;font-size:.875rem;border-radius:6px;cursor:pointer;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;color:#fff}.photo-search-btn:hover{background:#ffffff2e}.photo-search-btn:disabled{opacity:.5;cursor:default}.photo-search-close{background:none;border:none;color:#ffffff80;font-size:1.2rem;cursor:pointer;padding:2px 6px;line-height:1}.photo-search-close:hover{color:#fff}.photo-search-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.photo-search-thumb{position:relative;aspect-ratio:4/3;border-radius:6px;overflow:hidden;padding:0;border:2px solid transparent;cursor:pointer;background:#ffffff0d;transition:border-color .15s}.photo-search-thumb:hover{border-color:#ffffff80}.photo-search-thumb:disabled{cursor:default;opacity:.6}.photo-search-thumb img{width:100%;height:100%;object-fit:cover;display:block}.photo-search-thumb-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:#fff}.my-account-modal{background:var(--theme-panel-bg);border:1px solid var(--theme-panel-border);border-radius:16px;width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 12px 48px #0009;overflow:hidden}.my-account-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--theme-divider);flex-shrink:0}.my-account-modal-header h2{margin:0;font-size:1.1rem;color:#ffffffe6}.my-account-modal-body{overflow-y:auto;padding:20px 24px 24px;display:flex;flex-direction:column;gap:4px}.account-profile-card{display:flex;align-items:center;gap:24px;background:var(--theme-card-bg);border:1px solid var(--theme-card-border);border-radius:12px;padding:24px;margin-bottom:28px}.account-avatar{position:relative;width:80px;height:80px;border-radius:50%;background:#ffffff1f;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border:2px solid rgba(255,255,255,.15)}.account-avatar-img{width:100%;height:100%;object-fit:cover}.account-avatar-initials{font-size:1.6rem;font-weight:700;color:#ffffffb3;letter-spacing:1px;-webkit-user-select:none;user-select:none}.account-avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;font-size:1.4rem;opacity:0;transition:opacity .15s}.account-avatar:hover .account-avatar-overlay{opacity:1}.account-profile-info{display:flex;flex-direction:column;gap:4px}.account-full-name{font-size:1.25rem;font-weight:700;color:#fff;line-height:1.2}.account-username-display{font-size:.82rem;color:#ffffff80;word-break:break-all}.account-role-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;width:fit-content;margin-top:2px}.account-role-badge[data-role=admin]{background:#e74c3c40;color:#e74c3c}.account-role-badge[data-role=manager]{background:#3498db40;color:#5dade2}.account-role-badge[data-role=contributor]{background:#2ecc7140;color:#2ecc71}.account-role-badge[data-role=viewer]{background:#ffffff1a;color:#ffffff80}.account-since{font-size:.8rem;color:#ffffff59;margin-top:2px}.account-edit-btn{margin-bottom:28px;background:var(--theme-btn-ghost-bg);border:1px solid var(--theme-btn-ghost-border);color:var(--theme-text-secondary);padding:8px 18px;border-radius:6px;cursor:pointer;font-size:.875rem;transition:background .15s}.account-edit-btn:hover{background:#ffffff24;color:#fff}.account-avatar-btn{padding:6px 14px;font-size:.8rem;border-radius:6px;cursor:pointer;border:1px solid var(--theme-btn-ghost-border);background:var(--theme-btn-ghost-bg);color:var(--theme-text-primary);transition:background .15s}.account-avatar-btn:hover{background:#ffffff24}.account-avatar-btn--remove{border-color:#e74c3c66;color:#e74c3c;background:#e74c3c1a}.account-avatar-btn--remove:hover{background:#e74c3c33}.account-contributions{display:flex;gap:20px;flex-wrap:wrap;margin-top:12px}.account-contribution-item{display:flex;flex-direction:column;align-items:center;background:var(--theme-card-bg);border:1px solid var(--theme-card-border);border-radius:10px;padding:14px 24px;min-width:100px;text-align:center}.account-contribution-count{font-size:2rem;font-weight:700;color:#fff;line-height:1}.account-contribution-label{font-size:.75rem;color:#ffffff73;margin-top:4px;white-space:nowrap}.account-settings-toggles{display:flex;gap:10px;flex-wrap:wrap}.account-section-toggle{padding:8px 18px;border-radius:6px;cursor:pointer;border:1px solid rgba(255,255,255,.2);background:#ffffff0f;color:#ffffffb3;font-size:.875rem;transition:background .15s,color .15s}.account-section-toggle:hover{background:#ffffff1f;color:#fff}.account-section-toggle.active{background:#ffffff26;border-color:#ffffff59;color:#fff}.account-section{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--theme-divider)}.account-section h3{margin:0 0 12px;color:#ffffffb3;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.account-form{max-width:400px}.account-msg-error{color:#e74c3c;font-size:.875rem;margin:4px 0 0}.account-msg-success{color:#2ecc71;font-size:.875rem;margin:4px 0 0}.btn-secondary{background:var(--theme-btn-ghost-bg);border:1px solid var(--theme-nav-btn-border);color:var(--theme-text-secondary)}.delete-confirm-inline{margin-top:16px}.delete-confirm-message{font-size:.9rem;color:#ffffffbf;margin-bottom:10px}.delete-confirm-actions{display:flex;gap:10px}.delete-confirm-actions button{flex:1;width:auto;margin-top:0}.tour-dim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9900;background:#000000b8;pointer-events:all}.tour-spotlight{position:fixed;z-index:9910;border-radius:8px;box-shadow:0 0 0 9999px #000000b8;pointer-events:none;transition:top .25s ease,left .25s ease,width .25s ease,height .25s ease}.tour-tooltip{position:fixed;z-index:9920;background:var(--theme-panel-bg);border:1px solid var(--theme-panel-border);border-radius:14px;padding:0;box-shadow:0 16px 64px #0009;pointer-events:all;max-width:min(340px,92vw);display:flex;flex-direction:column;overflow:hidden}.tour-tooltip-scroll{padding:22px 22px 0;overflow-y:auto;flex:1 1 auto;min-height:0}.tour-tooltip .tour-actions{padding:12px 22px 18px;flex-shrink:0;border-top:1px solid var(--theme-divider);background:var(--theme-panel-bg)}.tour-progress{display:flex;gap:5px;margin-bottom:14px;flex-wrap:wrap}.tour-dot{width:6px;height:6px;border-radius:50%;background:#ffffff40;transition:background .2s;flex-shrink:0}.tour-dot--active{background:#3b82f6;width:18px;border-radius:3px}.tour-title{font-size:1rem;font-weight:700;color:#f0f6ff;margin:0 0 8px}.tour-body{font-size:.875rem;line-height:1.55;color:#ffffffc7;margin:0 0 18px}.tour-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.tour-nav{display:flex;gap:8px}.tour-skip{background:none;border:none;color:#ffffff61;font-size:.78rem;cursor:pointer;padding:4px 0;transition:color .15s;white-space:nowrap}.tour-skip:hover{color:#ffffffa6}.tour-btn{padding:8px 18px;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;border:none;transition:background .15s,opacity .15s;white-space:nowrap}.tour-btn--primary{background:#3b82f6;color:#fff}.tour-btn--primary:hover{background:#2563eb}.tour-btn--ghost{background:#ffffff1a;color:#fffc}.tour-btn--ghost:hover{background:#ffffff2e}@media(max-width:640px){.tour-tooltip{max-width:none;border-radius:16px 16px 12px 12px}.tour-tooltip-scroll{padding:18px 18px 0}.tour-tooltip .tour-actions{padding:10px 18px 16px}.tour-btn{padding:10px 20px;font-size:.9rem;min-height:44px}.tour-skip{min-height:44px;display:flex;align-items:center}}.tour-demo{margin-top:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:10px 12px;font-size:.82rem}.tour-demo-label{font-size:.67rem;text-transform:uppercase;letter-spacing:.06em;color:#ffffff4d;margin-bottom:7px}.tour-demo-row{padding:5px 0;border-bottom:1px solid rgba(255,255,255,.06)}.tour-demo-row:last-child{border-bottom:none}.tour-demo-recipe-name{color:#ffffffd1;font-size:.8rem;margin-bottom:3px}.tour-demo-recipe-meta{display:flex;align-items:center;gap:8px}.tour-demo-badge{background:#ffffff1a;border-radius:4px;padding:1px 6px;font-size:.69rem;color:#ffffff8c}.tour-demo-stars{color:#f4c430;font-size:.78rem;letter-spacing:1px}.tour-demo-stars--your{color:#ff9f43}.tour-demo-rating-row{display:flex;align-items:center;gap:8px;padding:3px 0}.tour-demo-rating-label{color:#ffffff73;font-size:.75rem;min-width:96px}.tour-demo-count{color:#ffffff59;font-size:.71rem}.tour-demo-photos{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:4px}.tour-demo-photo{aspect-ratio:1;background:#ffffff14;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:1.15rem}.tour-demo-photo--add{background:#ffffff08;border:1px dashed rgba(255,255,255,.18);color:#ffffff47;font-size:1rem}@media(max-width:640px){.meal-sidebar{width:100vw;height:calc(100dvh - var(--banner-h));padding:16px;padding-bottom:calc(24px + env(safe-area-inset-bottom));border-left:none}}@media(hover:none){.meal-photo-delete-btn{opacity:1;width:26px;height:26px;font-size:1rem;top:2px;right:2px}.meal-photo-cover-btn{opacity:1;width:26px;height:26px}}@media(max-width:640px){:root{--mobile-header-h: 56px}.floating-header{top:var(--banner-h);left:0;right:0;height:var(--mobile-header-h);flex-direction:row;align-items:center;padding:0 12px;gap:8px;background:var(--theme-sidebar-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--theme-timeline-header-border);pointer-events:auto}.globe-title-block{display:none}.globe-search-box{flex:1;max-width:none;margin:0}.fullscreen-globe{top:calc(var(--banner-h) + var(--mobile-header-h))}.globe-drilldown-header{top:calc(var(--banner-h) + var(--mobile-header-h) + 8px);left:12px}}@media(max-width:640px){.settings-page{flex-direction:column;height:auto;min-height:calc(100dvh - var(--banner-h))}.settings-sidebar{width:100%;min-width:0;height:auto;flex-direction:row;align-items:center;overflow-x:auto;padding:10px 12px;gap:8px;border-right:none;border-bottom:1px solid var(--theme-settings-sidebar-border);flex-shrink:0;scrollbar-width:none}.settings-sidebar::-webkit-scrollbar{display:none}.settings-sidebar h1,.settings-sidebar-spacer{display:none}.settings-sidebar button{width:auto;min-width:max-content;text-align:center;padding:8px 16px;border-radius:999px;white-space:nowrap;flex-shrink:0;border:1px solid var(--theme-nav-btn-border);background:var(--theme-nav-btn-bg);font-size:.85rem}.settings-sidebar button.settings-nav-active{background:var(--theme-settings-active-bg);border-color:var(--theme-settings-active-border);color:var(--theme-settings-active-text)}.settings-content{padding:20px 16px}}@media(max-width:640px){.audit-filters{grid-template-columns:1fr}.audit-row{grid-template-columns:1fr;gap:2px;font-size:.8rem}.audit-row div:first-child{color:#ffffff80;font-size:.72rem}}@media(max-width:640px){.backup-row{grid-template-columns:1fr;gap:12px}.backup-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.backup-row .backup-actions button,.backup-row .backup-actions .delete-button,.backup-row .backup-actions .ghost{width:auto!important;min-width:0!important;max-width:none!important;flex:1 1 auto!important;height:44px!important;min-height:44px!important;max-height:none!important}.status-grid{grid-template-columns:1fr 1fr}.status-grid.system-grid{grid-template-columns:1fr}}@media(max-width:640px){.my-account-modal{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0}.my-account-modal-body{padding-bottom:calc(24px + env(safe-area-inset-bottom))}}@media(max-width:640px){.settings-page{min-height:100dvh}.settings-content{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.main-menu-panel{height:100dvh;padding-bottom:calc(20px + env(safe-area-inset-bottom))}}@media(hover:none),(max-width:640px){.meal-photo-delete-yes,.meal-photo-delete-no{padding:10px 20px;font-size:.82rem;min-height:38px}}@media(max-width:640px){.lightbox-close{width:48px;height:48px;font-size:1.8rem;top:max(14px,calc(env(safe-area-inset-top) + 8px));right:max(18px,calc(env(safe-area-inset-right) + 12px))}.lightbox-nav{width:44px;height:56px;font-size:2rem}.lightbox-nav--prev{left:4px}.lightbox-nav--next{right:4px}.lightbox-dots{bottom:max(18px,calc(env(safe-area-inset-bottom) + 12px));gap:12px}.lightbox-dot{width:10px;height:10px;padding:7px;margin:-7px;border-radius:50%;box-sizing:content-box}.lightbox-img{max-height:calc(100dvh - 80px)}}@media(max-width:640px){.photo-crop-overlay{padding:0;align-items:stretch}.photo-crop-modal{max-width:none;border-radius:0;height:100dvh;max-height:100dvh}.photo-crop-actions{padding:10px 16px max(10px,env(safe-area-inset-bottom));gap:10px;flex-wrap:wrap}.photo-crop-actions button{min-height:44px;padding:10px 16px;font-size:.92rem;flex:1 1 auto}.photo-crop-actions-right{flex:1 1 100%}.photo-crop-actions-right button{flex:1}.photo-crop-canvas .ReactCrop__drag-handle{width:22px;height:22px}}@media(max-width:640px){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),textarea,select{font-size:16px!important}}@media(max-width:640px){.recipe-import-body{flex-direction:column;align-items:stretch;gap:10px}.recipe-import-input,.recipe-import-file{width:100%}.recipe-import-btn{width:100%;min-height:44px;font-size:1rem}.recipe-import-tab{min-height:40px}}@media(hover:none){.star-rating-btn{padding:10px 5px;min-height:44px;display:inline-flex;align-items:center}.star-rating--md .star-rating-btn{font-size:1.3rem}.star-rating--lg .star-rating-btn{font-size:1.9rem}}@media(max-width:640px){.meal-photo-delete-confirm{gap:4px}.meal-photo-delete-confirm .meal-photo-delete-yes,.meal-photo-delete-confirm .meal-photo-delete-no{padding:5px 8px;font-size:.72rem;min-height:28px;width:80%}}@media(max-width:640px){.back-to-world{min-height:44px;display:flex;align-items:center}}@media(max-width:640px){.sidebar-header-controls{gap:8px;margin-bottom:10px}.sidebar-back-button{flex:1;height:44px;min-height:44px;text-align:left;padding:0 14px}.close-sidebar{width:44px;height:44px}.sidebar-edit-btn{min-height:44px;padding:0 16px;margin-top:10px}}@media(max-width:640px){.served-recipe-link,.served-recipe-actions button{min-height:44px}}@media(max-width:640px){.rate-recipe-btn{min-height:44px;padding:8px 16px;font-size:.85rem}.recipe-rating-section{flex-direction:column;align-items:flex-start;gap:8px}.rating-modal{min-width:0;width:calc(100vw - 48px)}.recipe-image-container,.recipe-image{max-height:200px}.delete-confirm-actions{flex-direction:column}.delete-confirm-actions button{min-height:44px}}@media(max-width:640px){.meal-sidebar{scroll-padding-bottom:24px}button,a,[role=button]{touch-action:manipulation}}.main-menu-nav button,.main-menu-actions button{display:flex;align-items:center;gap:10px;text-align:left}.nav-icon{width:18px;height:18px;flex-shrink:0}[data-theme=christmas] .globe-title-block h1{font-family:Georgia,Times New Roman,serif;font-size:1.55rem;letter-spacing:.03em;text-shadow:0 0 16px rgba(221,178,83,.35),0 0 32px rgba(155,10,10,.2)}[data-theme=christmas] .globe-title-block p{font-family:Georgia,Times New Roman,serif;font-size:.78rem;letter-spacing:.04em;font-style:italic}[data-theme=christmas] .globe-search-input{border-color:#c9a03aa6;box-shadow:0 0 14px #9b0a0a2e,inset 0 0 0 1px #c9a03a14}[data-theme=christmas] .globe-search-input:focus{border-color:#ddb253d9;box-shadow:0 0 18px #9b0a0a38,0 0 8px #ddb25333}[data-theme=christmas] .meal-sidebar,[data-theme=christmas] .main-menu-panel{position:relative}[data-theme=christmas] .meal-sidebar:before,[data-theme=christmas] .main-menu-panel:before{content:"";position:absolute;top:0;left:0;width:32px;height:32px;background:url(/assets/corner-tl.svg) center/contain no-repeat;pointer-events:none;z-index:10}[data-theme=christmas] .meal-sidebar:after,[data-theme=christmas] .main-menu-panel:after{content:"";position:absolute;top:0;right:0;width:32px;height:32px;background:url(/assets/corner-tr.svg) center/contain no-repeat;pointer-events:none;z-index:10}[data-theme=christmas] .main-menu-nav button,[data-theme=christmas] .main-menu-actions button{background:#080a08d1;border:1px solid rgba(201,160,58,.38);color:var(--theme-text-primary);font-weight:500;font-size:.9rem;border-radius:10px;padding:10px 14px;width:100%;transition:background .18s,border-color .18s}[data-theme=christmas] .main-menu-nav button:hover,[data-theme=christmas] .main-menu-actions button:hover{background:#ddb2531a;border-color:#c9a03aa6}[data-theme=christmas] .main-menu-nav .nav-icon,[data-theme=christmas] .main-menu-actions .nav-icon{color:#ddb253e0}[data-theme=christmas] .sidebar-header:after{content:"";display:block;width:100%;height:22px;background:url(/assets/holly-divider.svg) center/auto 22px no-repeat;margin-top:10px}[data-theme=christmas] .location-menu button.ghost{background:linear-gradient(135deg,#6e121ce0,#500a12e0);border:1px solid rgba(160,38,52,.72);color:#f4b8c0}[data-theme=christmas] .location-menu button.ghost:hover{background:linear-gradient(135deg,#8b1e2deb,#640f19eb);border-color:#b43241d9}.sidebar-bottom-corners{position:absolute;bottom:0;left:0;right:0;height:32px;pointer-events:none}[data-theme=christmas] .sidebar-bottom-corners:before{content:"";position:absolute;bottom:0;left:0;width:32px;height:32px;background:url(/assets/corner-bl.svg) center/contain no-repeat}[data-theme=christmas] .sidebar-bottom-corners:after{content:"";position:absolute;bottom:0;right:0;width:32px;height:32px;background:url(/assets/corner-br.svg) center/contain no-repeat}[data-theme=christmas] .sidebar-header-left h2{font-family:Georgia,Times New Roman,serif;font-size:2rem;font-weight:700;letter-spacing:.02em;line-height:1.1;color:#f6f0df;text-shadow:0 0 18px rgba(221,178,83,.28);margin:0}[data-theme=christmas] .sidebar-header{margin-bottom:8px}[data-theme=christmas] .meal-sidebar{padding:20px 22px 28px;box-shadow:-6px 0 40px #000000d9,inset 0 0 60px #d7760508}[data-theme=christmas] .main-menu-panel{padding:20px 22px 28px}[data-theme=christmas] .location-menu>button:first-child,[data-theme=christmas] button[data-tour=add-christmas]{background:linear-gradient(135deg,#e8b840,#c4852a 55%,#a86820);border:none;color:#1a0d00;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:.82rem;box-shadow:0 2px 12px #d7760559}[data-theme=christmas] .location-menu>button:first-child:hover,[data-theme=christmas] button[data-tour=add-christmas]:hover{background:linear-gradient(135deg,#f0c848,#d4952e 55%,#b87825);box-shadow:0 4px 18px #d7760580}[data-theme=christmas] .year-card{border:1px solid rgba(201,160,58,.35);background:#0c0802b3;color:var(--theme-text-primary)}[data-theme=christmas] .year-card:hover{border-color:#ddb2539e;background:#1e1204bf}[data-theme=christmas] .location-menu h3{font-family:Georgia,Times New Roman,serif;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:#c9a03ab3;margin-top:18px;margin-bottom:8px}[data-theme=christmas] .globe-title-block{padding:4px 0}[data-theme=christmas] .globe-title-block h1{font-size:1.65rem}[data-theme=christmas] .sidebar-header-controls button{background:#080a08cc;border:1px solid rgba(201,160,58,.36);color:var(--theme-text-primary);border-radius:8px;font-size:.82rem;font-family:Georgia,Times New Roman,serif}
