.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#262626;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--primary-gradient: linear-gradient(135deg, #32adbd 0%, #32bd9f 100%);--secondary-gradient: linear-gradient(135deg, #32adbd 0%, #32bd9f 50%, #32bd9f 100%);--success-gradient: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);--background-gradient: linear-gradient(135deg, #fdfbfb 0%, #ebedee 100%);--analysis-gradient: linear-gradient(135deg, #f8f9ff 0%, #fff5f5 100%);--success-bg-gradient: linear-gradient(135deg, #ecfdf5 0%, #f0fdf4 100%);--primary-color: #32adbd;--primary-dark: #2a94a3;--primary-light: #4bc5d4;--accent-blue: #3897f0;--accent-indigo: #4f46e5;--accent-indigo-dark: #4338ca;--accent-teal: #48cab2;--success-color: #10b981;--success-dark: #059669;--success-darker: #38a169;--error-color: #ef4444;--error-text: #ed4956;--error-dark: #dc2626;--error-darker: #b91c1c;--error-bg: #fee2e2;--error-border: #fecaca;--warning-color: #f59e0b;--warning-bg: #fef3c7;--info-color: #3182ce;--info-bg: #eff6ff;--like-color: #ff6b6b;--text-primary: #262626;--text-secondary: #6b7280;--text-tertiary: #8e8e8e;--text-muted: #9ca3af;--text-dark: #1f2937;--text-gray: #374151;--text-light-gray: #666;--text-very-light: #c7c7c7;--border-light: #e5e7eb;--border-medium: #d1d5db;--border-gray: #e1e8ed;--border-light-gray: #efefef;--border-very-light: #f3f4f6;--border-lighter: #dbdbdb;--border-dark: #333;--background-light: #f9fafb;--background-white: #ffffff;--background-gray: #f8f9fa;--background-off-white: #f3f4f6;--background-lighter: #f0f2f5;--background-pale: #f0f0f0;--background-error: #ffeaea;--background-error-light: #fef2f2;--background-success-light: #ecfdf5;--overlay-dark: rgba(0, 0, 0, .5);--overlay-darker: rgba(0, 0, 0, .6);--overlay-darkest: rgba(0, 0, 0, .7);--overlay-light: rgba(255, 255, 255, .2);--primary-alpha-10: rgba(50, 173, 189, .1);--primary-alpha-20: rgba(50, 173, 189, .2);--indigo-alpha-5: rgba(79, 70, 229, .05);--gray-alpha-5: rgba(107, 114, 128, .05);--white-alpha-20: rgba(255, 255, 255, .2);--shadow-xs: 0 1px 4px rgba(0, 0, 0, .05);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 25px rgba(0, 0, 0, .12);--shadow-xl: 0 8px 30px rgba(0, 0, 0, .12);--shadow-2xl: 0 20px 60px rgba(0, 0, 0, .15);--shadow-3xl: 0 25px 80px rgba(0, 0, 0, .3);--shadow-primary: 0 4px 15px rgba(50, 173, 189, .3);--shadow-primary-hover: 0 8px 25px rgba(50, 173, 189, .4);--shadow-success: 0 4px 12px rgba(16, 185, 129, .1);--shadow-dropdown: 0 8px 24px rgba(0, 0, 0, .15);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 50%;--header-height: 60px;--max-content-width: 935px;--touch-target: 44px;--border-radius: var(--radius-lg);--transition: all .2s ease;height:100%}body{overflow-y:auto}.app{min-height:100vh;display:flex;flex-direction:column;background:var(--background-white);max-width:100vw;overflow-x:hidden}.app-main{flex:1;width:100%;max-width:100vw;padding:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}@media (min-width: 768px){.app{box-shadow:var(--shadow-lg);max-width:100%;margin:0 auto}.app-main{max-width:var(--max-content-width);margin:2rem auto;padding:0}}.app-loading,.feed-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:16px}.loading-spinner{width:50px;height:50px;border:4px solid var(--primary-alpha-10);border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;box-shadow:var(--shadow-primary)}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.auth-card{background:#fff;padding:40px;border-radius:20px;box-shadow:var(--shadow-2xl);width:100%;max-width:400px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--overlay-light)}.auth-logo{display:flex;justify-content:center;margin-bottom:24px}.auth-logo-image{height:80px;width:80px;object-fit:contain;border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.auth-title{font-size:28px;font-weight:700;text-align:center;margin-bottom:8px;color:var(--text-primary);background:var(--primary-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-subtitle{text-align:center;color:var(--text-tertiary);margin-bottom:32px;font-size:16px;line-height:1.5}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-input{padding:14px 18px;border:2px solid var(--border-gray);border-radius:var(--radius-lg);font-size:16px;transition:all .3s ease;background:var(--background-gray)}.auth-input:focus{outline:none;border-color:var(--primary-color);background:#fff;box-shadow:0 0 0 3px var(--primary-alpha-10);transform:translateY(-1px)}.auth-button{padding:14px 20px;background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-lg);font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-primary)}.auth-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-primary-hover)}.auth-button:disabled{background:var(--border-gray);cursor:not-allowed;transform:none;box-shadow:none}.auth-button:disabled.registration-complete{background:var(--success-gradient);color:#fff;cursor:default}.auth-divider{display:flex;align-items:center;text-align:center;margin:20px 0;color:var(--text-tertiary);font-size:14px}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1px solid var(--border-gray)}.auth-divider span{padding:0 12px}.auth-button-google{background:#fff;color:#1f2937;border:1px solid #d1d5db;display:flex;align-items:center;justify-content:center;gap:12px;font-weight:500}.auth-button-google:hover:not(:disabled){background:#f9fafb;transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.auth-button-google:disabled{background:#f3f4f6;color:#9ca3af;border-color:#e5e7eb}.auth-error{color:var(--error-text);font-size:14px;text-align:center;padding:8px;background:var(--background-error);border-radius:4px}.auth-success{color:var(--success-dark);font-size:14px;text-align:center;padding:32px 24px;background:var(--success-bg-gradient);border:1px solid var(--success-color);border-radius:var(--radius-lg);line-height:1.5;box-shadow:var(--shadow-success)}.auth-success-icon{font-size:48px;margin-bottom:16px}.auth-success h2{color:var(--text-primary);font-size:24px;font-weight:700;margin:0 0 16px}.auth-success p{color:var(--text-secondary);margin:8px 0}.auth-success strong{color:var(--text-primary);font-weight:600}.auth-success-hint{font-size:13px;color:var(--text-tertiary);margin-top:16px!important}.auth-link{background:none;border:none;color:var(--accent-blue);cursor:pointer;font-weight:600;text-decoration:none}.auth-link:hover{text-decoration:underline}.header{background:var(--background-white);border-bottom:1px solid var(--border-light);position:sticky;top:0;z-index:1000;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header-content{max-width:1200px;margin:0 auto;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between}.header-logo{display:flex;align-items:center;gap:.75rem;margin-right:1em}.logo-image{height:2.5rem;width:2.5rem;object-fit:contain;border-radius:var(--radius-md)}.logo-text{display:flex;flex-direction:column}.logo-title{font-size:1.5rem;font-weight:800;color:var(--text-primary);margin:0;line-height:1}.logo-subtitle{color:var(--text-muted);font-size:.75rem;font-weight:500;line-height:1}.nav-desktop{display:flex;gap:1rem}.nav-item{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border:none;outline:none;background:transparent;color:var(--text-secondary);border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all .2s ease;font-size:.875rem;white-space:nowrap;box-shadow:none}.nav-item:hover{background:var(--primary-alpha-10);color:var(--primary-color);border-radius:var(--radius-md)}.nav-item.active{background:var(--primary-gradient);color:var(--background-white)}.header-actions{display:flex;align-items:center;gap:1rem;margin:0rem 1rem}.action-text{display:inline}.user-profile{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--background-light);border-radius:var(--radius-lg)}.btn-icon{padding:.5rem;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-md);transition:all .2s ease}.btn-icon:hover{background:var(--background-white);color:var(--text-primary)}.menu-toggle{display:none;padding:.5rem;background:transparent;border:none;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-md)}.nav-mobile{position:absolute;top:100%;left:0;right:0;background:var(--background-white);border-bottom:1px solid var(--border-light);box-shadow:var(--shadow-lg);transform:translateY(-100%);opacity:0;visibility:hidden;transition:all .3s ease;padding:1rem 0}.nav-mobile.open{transform:translateY(0);opacity:1;visibility:visible}.nav-item-mobile{display:flex;align-items:center;gap:1rem;width:100%;padding:1rem 1.5rem;border:none;background:transparent;color:var(--text-secondary);font-weight:600;cursor:pointer;transition:all .2s ease;font-size:1rem}.nav-item-mobile:hover{background:var(--background-light);color:var(--text-primary)}.nav-item-mobile.active{background:var(--primary-alpha-10);color:var(--primary-color);border-right:3px solid var(--primary-color)}.nav-divider{height:1px;background:var(--border-light);margin:.5rem 1.5rem}.menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--overlay-dark);z-index:999}@media (max-width: 1024px){.nav-desktop{display:none}.menu-toggle{display:block}.action-text{display:none}.user-profile{padding:.5rem}.user-email{display:none}}@media (max-width: 640px){.header-content{padding:1rem}.logo-subtitle{display:none}.header-actions{gap:.5rem}.post-header{display:flex!important;flex-direction:row!important;align-items:flex-start!important;justify-content:space-between!important;gap:12px}.post-header>.flex.items-center.gap-md{flex:1;min-width:0}.author-info{min-width:0;flex:1}.author-info h3,.author-info p,.post-location-container{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.post-header>.flex.gap-md{flex-shrink:0}}.feed{max-width:614px;margin:0 auto;padding:0 20px;width:100%}.feed-empty{text-align:center;padding:60px 20px;color:var(--text-tertiary)}.week-streak-container{min-height:1px}.week-streak{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:16px 20px;margin-bottom:20px;transition:opacity .3s ease,transform .3s ease}.week-streak.hidden{opacity:0;transform:translateY(-10px);pointer-events:none;height:0;padding:0;margin:0;overflow:hidden}.week-streak.visible{opacity:1;transform:translateY(0)}.week-streak-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.week-streak-title{font-size:14px;font-weight:600;color:var(--text-primary)}.week-streak-count{font-size:13px;color:var(--text-secondary);font-weight:500}.week-streak-count.clickable{color:var(--primary-color)}.week-streak-count.clickable:hover{color:var(--primary-dark)}.week-streak-days{display:flex;justify-content:space-between;gap:4px}.week-streak-day{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1}.week-streak-dot{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#d1d5db;transition:all .2s ease}.week-streak-day.posted .week-streak-dot{background:#32adbd;background:var(--primary-gradient);box-shadow:0 2px 8px #32adbd4d}.week-streak-day.today .week-streak-dot{border:2px solid var(--primary-color)}.week-streak-day.today.posted .week-streak-dot{border:2px solid white;box-shadow:0 2px 8px #32adbd66}.week-streak-day.missed .week-streak-dot{background:#e5e7eb}.week-streak-day.future .week-streak-dot{background:#e5e7eb;opacity:.5}.week-streak-dot.add-post{background:#9ca3af;color:#fff;cursor:pointer}.week-streak-dot.add-post:hover{background:#6b7280;transform:scale(1.05)}.week-streak-dot.add-post-active{background:#32adbd;background:var(--primary-gradient);color:#fff;cursor:pointer;box-shadow:0 2px 8px #32adbd4d}.week-streak-dot.add-post-active:hover{transform:scale(1.1);box-shadow:0 4px 12px #32adbd66}.week-streak-check{color:#fff;font-size:14px;font-weight:600}.week-streak-label{font-size:11px;color:var(--text-tertiary);font-weight:500}.week-streak-day.today .week-streak-label{color:var(--primary-color);font-weight:600}.week-streak-day.posted .week-streak-label{color:var(--text-secondary)}.post{background:#fff;border:1px solid var(--border-gray);border-radius:var(--radius-xl);margin-bottom:24px;overflow:visible;box-shadow:var(--shadow-md);transition:all .3s ease}.post:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl)}.post-header{display:flex;align-items:flex-start;justify-content:space-between;padding:14px 16px;position:relative;overflow:visible;border-radius:var(--radius-xl) 16px 0 0}.post-author{display:flex;align-items:center;gap:12px}.author-avatar{width:48px;height:48px;border-radius:50%;overflow:hidden;object-fit:cover}.author-avatar img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{width:32px;height:32px;border-radius:50%;background:var(--primary-gradient);display:flex;align-items:center;justify-content:center;color:var(--background-white);font-weight:700;font-size:14px;box-shadow:var(--shadow-primary)}.author-info h3{font-size:14px;font-weight:600;color:var(--text-primary)}.author-info p{font-size:12px;color:var(--text-tertiary)}.post-location,.post-location-container{font-size:11px;color:var(--text-light-gray);margin-top:2px;display:flex;align-items:center;gap:4px}.location-text{display:flex;align-items:center}.restaurant-name-link{color:var(--accent-indigo);cursor:pointer;font-weight:500;transition:all .2s ease;border-radius:4px;padding:1px 2px}.restaurant-name-link:hover{color:var(--accent-indigo-dark);background:var(--indigo-alpha-5);text-decoration:underline}.post-dish-link{color:var(--accent-indigo);cursor:pointer;transition:all .2s ease}.post-dish-link:hover{text-decoration:underline}.location-text-clickable{cursor:pointer;transition:all .2s ease;border-radius:4px;padding:1px 2px}.location-text-clickable:hover{background:var(--gray-alpha-5);color:var(--text-gray)}.post-cost{color:var(--accent-teal);font-weight:600}.dropdown-menu{position:absolute;top:100%;right:0;background:#fff;border:1px solid var(--border-gray);border-radius:var(--radius-lg);box-shadow:var(--shadow-dropdown);min-width:180px;padding:8px 0;z-index:100;margin-top:4px;animation:dropdownFadeIn .2s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-menu button{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;border:none;background:none;color:var(--text-primary);font-size:14px;font-weight:500;text-align:left;cursor:pointer;transition:all .2s ease}.dropdown-menu button:hover{background:var(--background-off-white)}.dropdown-menu button.text-danger{color:var(--error-color)}.dropdown-menu button.text-danger:hover{background:var(--background-error-light)}.post-image{width:100%;max-height:500px;overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative;background:var(--background-light)}.post-image-bg{position:absolute;top:-20px;right:-20px;bottom:-20px;left:-20px;background-size:cover;background-position:center;filter:blur(20px) brightness(.7);transform:scale(1.1)}.post-image img{width:100%;height:auto;max-height:500px;object-fit:contain;display:block;position:relative;z-index:1}.post-cards-container{position:relative;width:100%;background:var(--background-light)}.post-cards-scroll{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none}.post-cards-scroll::-webkit-scrollbar{display:none}.post-card-item{flex:0 0 100%;scroll-snap-align:start;max-height:500px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.post-card-item-bg{position:absolute;top:-20px;right:-20px;bottom:-20px;left:-20px;background-size:cover;background-position:center;filter:blur(20px) brightness(.7);transform:scale(1.1)}.post-card-item img{width:100%;height:auto;max-height:500px;object-fit:contain;display:block;position:relative;z-index:1}.post-card-nav-button{position:absolute;top:50%;margin-top:-18px;z-index:10;background:#fffffff2;border:none;border-radius:50%;width:36px;height:36px;min-width:36px;min-height:36px;max-width:36px;max-height:36px;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0000004d;color:#333}.post-card-nav-button svg{width:24px;height:24px;stroke:#333;flex-shrink:0}.post-card-nav-button:hover{background:#fff;box-shadow:0 4px 12px #0006}.post-card-nav-left{left:8px}.post-card-nav-right{right:8px}.post-card-dots{display:flex;gap:6px;justify-content:center;padding:8px;background:#0000004d;position:absolute;bottom:8px;left:50%;transform:translate(-50%);border-radius:12px}.post-card-dot{width:6px;height:6px;border-radius:50%;background:#ffffff80;transition:all .2s ease}.post-card-dot.active{background:#fff;width:20px;border-radius:3px}.post-card-add{flex:0 0 100%;scroll-snap-align:start;min-height:300px;max-height:500px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);gap:16px;padding:24px}.post-card-add-buttons{display:flex;flex-direction:column;gap:12px;width:100%;max-width:280px}.post-card-add-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;border-radius:var(--radius-md);font-size:15px;font-weight:600;cursor:pointer;border:none;transition:all .15s ease}.post-card-add-btn.photo{background:var(--primary-gradient);color:#fff;box-shadow:0 2px 8px #667eea4d}.post-card-add-btn.photo:hover{box-shadow:0 4px 12px #667eea66}.post-card-add-btn.strava{background:#fc4c02;color:#fff;box-shadow:0 2px 8px #fc4c024d}.post-card-add-btn.strava:hover{box-shadow:0 4px 12px #fc4c0266}.strava-card{width:100%;height:400px;background:linear-gradient(135deg,#fc4c02,#ff6a3d);display:flex;flex-direction:column;color:#fff;padding:24px}.strava-card-header{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;margin-bottom:24px;opacity:.9}.strava-card-content{flex:1;display:flex;flex-direction:column;justify-content:center}.strava-card-name{display:flex;align-items:center;gap:12px;font-size:24px;font-weight:700;margin-bottom:24px}.strava-activity-emoji{font-size:32px}.strava-card-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.strava-stat{background:#ffffff26;border-radius:12px;padding:16px;text-align:center}.strava-stat-value{display:block;font-size:20px;font-weight:700;margin-bottom:4px}.strava-stat-label{display:block;font-size:12px;opacity:.8;text-transform:uppercase;letter-spacing:.5px}.analysis-dishes-section{margin-bottom:16px}.analysis-dishes-section .post-dishes-list{display:flex;flex-direction:column;gap:8px}.dish-card-small{display:flex;align-items:center;gap:12px;padding:8px;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;background:var(--background-light);border:1px solid var(--border-light)}.dish-card-small:hover{background:var(--background-off-white);border-color:var(--primary-light);transform:translateY(-1px)}.dish-card-small .dish-image-small{width:44px;height:44px;border-radius:8px;object-fit:cover;flex-shrink:0}.dish-card-small .dish-info-small{flex:1;min-width:0}.dish-card-small .dish-name-small{display:block;font-size:.9rem;font-weight:600;color:var(--text-dark);line-height:1.3}.dish-card-small .dish-description-small{margin:2px 0 0;font-size:.8rem;color:var(--text-secondary);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (min-width: 768px){.dishes-grid{flex-direction:row;flex-wrap:wrap}.dish-card-small{flex:1;min-width:200px}}.post-actions{padding:8px 16px}.action-buttons{display:flex;gap:12px;margin-bottom:30px}.action-button{background:#fff;border:1px solid var(--border-light);cursor:pointer;padding:10px 12px;color:var(--text-gray);transition:all .2s ease;border-radius:var(--radius-md);flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:6px;font-size:.8rem;font-weight:500}.action-button:hover{color:#667eea;background:var(--primary-alpha-10);transform:scale(1.1)}.action-button.liked{color:var(--like-color);animation:heartBeat .3s ease}@keyframes heartBeat{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.post-info{padding:0 16px 16px}.likes-count{font-weight:600;font-size:14px;margin-bottom:8px}.post-caption{font-size:14px;margin-bottom:8px;line-height:1.4}.post-caption strong{font-weight:600}.food-analysis{margin:16px 0;padding:16px;background:var(--analysis-gradient);border-radius:var(--radius-lg);border:1px solid var(--primary-alpha-10)}.post-map-container{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.post-map-popup h4{margin:0 0 4px;font-weight:600;color:#333}.post-map-popup p{margin:2px 0;font-size:.9rem;color:var(--text-light-gray)}.analysis-title{font-size:14px;font-weight:600;color:#444;margin-bottom:10px;display:flex;align-items:center;gap:6px}.ingredients-section{margin-bottom:30px;margin-top:15px}.ingredients-list{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:20px;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg)}.ingredient-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--border-light);color:var(--text-gray);border-radius:6px;font-size:.7rem;font-weight:500;box-shadow:0 2px 8px #667eea33}.confidence{background:var(--overlay-light);padding:2px 6px;border-radius:10px;font-size:.65rem;font-weight:600;color:var(--text-secondary);margin-left:4px}.nutrition-section{border-top:1px solid var(--primary-alpha-10);background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:20px;margin-bottom:30px}.nutrition-info{display:flex;align-items:center;gap:20px}.calories-main{display:flex;align-items:baseline;gap:4px;margin-right:16px}.calories-number{font-size:28px;font-weight:700;color:var(--like-color)}.calories-label{font-size:14px;color:var(--text-tertiary);font-weight:500}.macros{display:flex;gap:16px;flex:1}.macro{display:flex;flex-direction:column;align-items:center;padding:8px 12px;background:#fff;border-radius:var(--radius-md);box-shadow:0 2px 8px #0000000d;min-width:60px}.macro-value{font-size:16px;font-weight:600;color:#333}.macro-label{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;font-weight:500;margin-top:2px}.post-comments{margin-bottom:12px}.comment{font-size:14px;margin-bottom:4px;line-height:1.4}.comment strong{font-weight:600}.comment-username{cursor:pointer}.view-all-comments{background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:14px;padding:0}.add-comment{display:flex;gap:8px;align-items:center;border-top:1px solid var(--border-light-gray);padding:8px 0}.add-comment input{flex:1;padding:8px 12px;border:none;outline:none;font-size:14px;background:transparent}.add-comment input::placeholder{color:var(--text-tertiary)}.add-comment button{background:none;border:none;color:var(--accent-blue);font-weight:600;cursor:pointer;font-size:14px;padding:4px 0}.add-comment button:disabled{color:var(--text-very-light);cursor:not-allowed}.post-location-edit{display:flex;flex-direction:column;gap:12px;padding:16px 16px 0}.meal-type-selector{display:flex;gap:12px;margin-bottom:4px}.meal-type-selector label{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:2px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;background:#fff;font-size:14px;font-weight:500}.meal-type-selector label:hover{border-color:var(--accent-blue);background:var(--primary-alpha-5)}.meal-type-selector input[type=radio]{display:none}.meal-type-selector svg{transition:all .2s ease}.meal-type-selector label:has(input:checked){border-color:var(--accent-blue);background:var(--primary-alpha-10);color:var(--accent-blue)}.meal-type-selector label:has(input:checked) svg{color:var(--accent-blue)}.post-edit-input{width:100%;padding:10px 12px;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:14px;font-family:inherit;transition:all .2s ease;background:#fff}.post-edit-input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--primary-alpha-10)}.post-caption-edit-container{padding:0 16px 16px;position:relative}.post-caption-edit{width:100%;padding:12px;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:14px;font-family:inherit;resize:vertical;min-height:80px;transition:all .2s ease}.post-caption-edit:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--primary-alpha-10)}.char-counter{position:absolute;bottom:24px;right:24px;font-size:12px;color:var(--text-tertiary)}.post-edit-actions{display:flex;gap:12px;margin-top:16px}.cancel-edit-button,.save-edit-button{flex:1;padding:14px 24px;border:none;border-radius:var(--radius-md);font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit;background:var(--accent-blue);color:#fff}.cancel-edit-button{background:var(--bg-secondary);color:var(--text-primary);border:2px solid var(--border-light)}.cancel-edit-button:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--border-medium)}.save-edit-button:hover:not(:disabled){background:#06c;transform:translateY(-1px);box-shadow:0 4px 12px #0066cc4d}.cancel-edit-button:disabled,.save-edit-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.upload-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--overlay-darker);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.upload-modal{background:#fff;border-radius:20px;max-width:600px;width:100%;max-height:90vh;overflow:hidden;box-shadow:var(--shadow-3xl);border:1px solid var(--overlay-light);display:flex;flex-direction:column}.upload-modal-simple{max-width:550px;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.upload-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-gray);background:#fff}.upload-header h2{font-size:20px;font-weight:700;margin:0;background:var(--primary-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.close-button{background:none;border:none;cursor:pointer;padding:8px;color:var(--text-secondary);transition:all .2s ease;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;width:36px;height:36px}.close-button:hover{background:var(--error-color);color:#fff;transform:scale(1.05)}.upload-content-simple{padding:0;overflow-y:auto;flex:1;display:flex;flex-direction:column}.upload-area-large{padding:60px 40px;text-align:center;cursor:pointer;transition:all .3s ease;background:var(--analysis-gradient);border-bottom:2px dashed var(--border-gray);min-height:300px;display:flex;align-items:center;justify-content:center}.upload-area-large:hover{background:linear-gradient(135deg,#f0f2ff,#fff0f0);border-color:#667eea}.upload-placeholder-large{display:flex;flex-direction:column;align-items:center;gap:16px}.upload-placeholder-large svg{color:#667eea;opacity:.8}.upload-placeholder-large h3{font-size:24px;font-weight:700;color:var(--text-primary);margin:0}.upload-placeholder-large p{font-size:16px;color:var(--text-secondary);margin:0}.upload-placeholder-large .upload-hint{font-size:14px;color:#9ca3af;margin-top:4px}.preview-section{padding:24px;background:var(--background-light);border-bottom:1px solid var(--border-gray)}.image-preview-large{position:relative;border-radius:var(--radius-lg);overflow:hidden;max-height:400px;display:flex;align-items:center;justify-content:center;background:#000}.image-preview-large img{width:100%;height:auto;max-height:400px;object-fit:contain;display:block}.remove-image-large{position:absolute;top:12px;right:12px;background:var(--error-color);color:#fff;border:none;border-radius:50%;width:36px;height:36px;min-width:36px;min-height:36px;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:10;box-shadow:0 2px 8px #0000004d}.remove-image-large:hover{background:#dc2626;transform:scale(1.1);box-shadow:0 4px 12px #ef444480}.caption-section{padding:24px;display:flex;flex-direction:column;gap:8px}.caption-textarea{width:100%;padding:14px;border:2px solid var(--border-light);border-radius:var(--radius-lg);font-size:15px;font-family:inherit;resize:none;transition:all .2s ease;line-height:1.5}.caption-textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px var(--primary-alpha-10)}.caption-textarea::placeholder{color:#9ca3af}.caption-counter{text-align:right;font-size:12px;color:var(--text-tertiary);font-weight:500}.location-indicator{display:flex;align-items:center;gap:8px;padding:12px 24px;background:var(--background-light);border-top:1px solid var(--border-gray);font-size:14px;color:var(--text-secondary)}.location-indicator svg{color:var(--primary-color);flex-shrink:0}.location-indicator span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-spinner{animation:spin 1s linear infinite}.upload-actions-simple{padding:24px;background:var(--background-light);border-top:1px solid var(--border-gray)}.post-button{width:100%;padding:16px 24px;background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-lg);font-size:17px;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea66;letter-spacing:.5px}.post-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #667eea80}.post-button:disabled{background:linear-gradient(135deg,var(--border-medium) 0%,#9ca3af 100%);cursor:not-allowed;transform:none;box-shadow:none}.upload-error{color:#ed4956;font-size:14px;padding:8px;background:#ffeaea;border:1px solid var(--error-border);border-radius:4px;margin:0 24px 16px;text-align:center}.cards-container{position:relative;background:var(--background-light);border-bottom:1px solid var(--border-gray)}.cards-scroll{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none}.cards-scroll::-webkit-scrollbar{display:none}.card-item{flex:0 0 100%;scroll-snap-align:start;min-height:300px}.placeholder-card{min-height:300px}.card-nav-button{position:absolute;top:50%;transform:translateY(-50%);z-index:10;background:#ffffffe6;border:1px solid var(--border-gray);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #0000001a}.card-nav-button:hover{background:#fff;box-shadow:0 4px 12px #00000026;transform:translateY(-50%) scale(1.05)}.card-nav-left{left:12px}.card-nav-right{right:12px}.card-dots{display:flex;gap:8px;justify-content:center;padding:16px;background:var(--background-light)}.card-dot{width:8px;height:8px;border-radius:50%;background:var(--border-medium);border:none;cursor:pointer;transition:all .2s ease;padding:0}.card-dot.active{background:var(--primary-color);width:24px;border-radius:4px}.card-dot:hover:not(.active){background:var(--border-dark);transform:scale(1.2)}.add-card-button{margin:0 24px 16px;width:calc(100% - 48px);padding:12px 16px;background:#fff;border:2px dashed var(--border-medium);border-radius:var(--radius-md);color:var(--text-secondary);font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.add-card-button:hover{border-color:var(--primary-color);color:var(--primary-color);background:var(--background-hover)}.location-on-card{margin-top:12px;padding:8px 12px;background:#667eea1a;border-radius:var(--radius-md);font-size:13px}.upload-content{padding:24px;overflow-y:auto;flex:1;display:grid;grid-template-columns:1fr 350px;gap:24px;max-height:calc(90vh - 120px)}.file-select{text-align:center;padding:60px 20px}.file-drop-zone{border:2px dashed var(--border-lighter);border-radius:var(--radius-md);padding:40px 20px;cursor:pointer;transition:all .2s}.file-drop-zone:hover{border-color:var(--accent-blue);background:#f8f9ff}.file-drop-zone svg{color:var(--text-tertiary);margin-bottom:16px}.file-drop-zone h3{font-size:18px;margin-bottom:8px;color:var(--text-primary)}.file-drop-zone p{color:var(--text-tertiary);margin-bottom:20px}.select-file-button{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:var(--accent-blue);color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:background-color .2s}.select-file-button:hover{background:#1372cc}@media (max-width: 1024px){.upload-content{grid-template-columns:1fr}.upload-sidebar{position:static}}.upload-form-container{display:flex;flex-direction:column;gap:20px}.preview-image-container{width:100%;position:relative;display:block}.preview-image{aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;width:100%;display:block;object-fit:cover}.preview-image-container .remove-image{position:absolute;top:12px;right:12px;background:#000000b3;color:#fff;border:none;border-radius:50%;width:36px;height:36px;min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s;z-index:10;padding:0}.preview-image-container .remove-image:hover{background:#000000e6}.preview-image img{width:100%;height:100%;object-fit:cover}.remove-image{position:absolute;top:12px;right:12px;background:#000000b3;color:#fff;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s ease}.upload-form{display:flex;flex-direction:column;gap:16px;width:100%}.form-section{display:flex;flex-direction:column;gap:8px}.form-section label{font-weight:600;font-size:14px;color:var(--text-primary)}.upload-form textarea{padding:12px;border:1px solid var(--border-lighter);border-radius:6px;font-size:14px;font-family:inherit;resize:vertical;min-height:80px}.upload-form textarea:focus{outline:none;border-color:var(--accent-blue)}.location-bar{margin-bottom:16px}.location-input-container{position:relative;display:flex;align-items:center}.location-input-container .location-icon{position:absolute;left:12px;color:var(--text-secondary);pointer-events:none;flex-shrink:0}.location-input-container .location-input{padding-left:40px}.location-input,.restaurant-input,.cost-input{padding:12px;border:1px solid #ddd;border-radius:var(--radius-md);font-size:14px;transition:border-color .2s ease;background:#fff;width:100%;box-sizing:border-box;max-width:150px}.location-input:focus,.restaurant-input:focus,.cost-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px var(--primary-alpha-10)}.upload-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:10px;border-top:1px solid var(--border-lighter);margin-top:10px}.cancel-button{padding:10px 20px;background:none;border:1px solid var(--border-lighter);border-radius:6px;cursor:pointer;font-weight:600}.share-button{padding:12px 24px;background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-lg);font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea4d}.share-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #667eea66}.share-button:disabled{background:var(--border-gray);cursor:not-allowed;transform:none;box-shadow:none}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:var(--text-gray)}.form-group input,.form-group textarea{width:100%;padding:12px;border:1px solid var(--border-medium);border-radius:var(--radius-md);font-size:.95rem;transition:border-color .2s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-indigo);box-shadow:0 0 0 3px #4f46e51a}.ingredients-input{display:flex;flex-direction:column;gap:8px}.remove-ingredient{background:var(--error-bg);color:var(--error-dark);border:none;border-radius:6px;padding:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:32px;height:32px}.remove-ingredient:hover:not(:disabled){background:var(--error-dark)}.remove-ingredient:disabled{background:var(--border-light);cursor:not-allowed}.add-ingredient{display:flex;align-items:center;gap:.5rem;background:var(--background-gray);color:var(--text-primary);border:2px dashed var(--border-light);border-radius:var(--radius-md);padding:10px 16px;cursor:pointer;transition:all .2s ease;align-self:flex-start;font-size:.875rem;margin-top:.5rem}.add-ingredient:hover{background:var(--success-dark)}.nutrition-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem}.nutrition-item{display:flex;flex-direction:column;gap:8px;align-items:center;font-size:.9rem;color:var(--text-gray);justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--background-off-white)}.nutrition-item label{font-size:.9rem;color:var(--text-secondary);margin-bottom:4px}.nutrition-item input{padding:8px 12px;font-size:.9rem}.post-type-selector{display:flex;gap:10px;margin-bottom:16px;background-color:var(--background-lighter);padding:4px;border-radius:10px}.post-type-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border:none;background-color:transparent;border-radius:var(--radius-md);font-weight:600;color:#65676b;cursor:pointer;transition:all .2s ease-in-out}.post-type-btn.active{background-color:#fff;color:#667eea;box-shadow:0 2px 4px #0000001a}.search-input-container{position:relative;display:flex;align-items:center}.search-input-container svg{position:absolute;left:12px;color:var(--text-tertiary);z-index:1}.search-input{width:100%;padding:12px 12px 12px 45px;border:2px solid var(--border-light);border-radius:var(--radius-lg);font-size:1rem;font-family:inherit;background:#fff;transition:all .3s ease;position:relative;z-index:1;padding-left:3rem}.search-input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 2px #3897f01a}.selected-dishes{margin-bottom:20px;padding:16px;background:#f8f9ff;border-radius:var(--radius-md);border:1px solid var(--border-gray)}.selected-dishes h4{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--text-primary)}.selected-dish{display:flex;align-items:center;gap:8px;padding:6px 8px;background:#fff;border:1px solid var(--border-lighter);border-radius:var(--radius-xl);font-size:12px;color:var(--text-primary)}.selected-dish img{width:24px;height:24px;border-radius:50%;object-fit:cover}.add-dish-button{display:flex;align-items:center;gap:.5rem;padding:12px 20px;background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-lg);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;box-shadow:var(--shadow-md)}.add-dish-button:hover{background:#1372cc}.dishes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;max-height:300px;padding:4px}.dish-card{border:1px solid var(--border-lighter);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:all .2s;background:#fff}.dish-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.dish-card.selected{background:#f8f9ff;box-shadow:0 0 0 2px #3897f01a}.dish-card img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.dish-info{padding:8px}.dish-info h5{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dish-info p{margin:0;font-size:11px;color:var(--text-tertiary);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.loading{text-align:center;padding:40px;color:var(--text-tertiary);font-size:14px}.post-detail{max-width:1200px;margin:0 auto;padding:20px}.post-detail-header{margin-bottom:20px}.back-button{display:flex;align-items:center;gap:8px;padding:10px 16px;background:none;border:1px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;font-weight:500;color:var(--text-gray);transition:all .2s ease;font-size:.9rem;margin-bottom:20px}.back-button:hover{background:var(--background-white);border-color:var(--border-medium)}.post-detail-content{max-width:800px;margin:0 auto}.post-detail .post-image{max-height:none;height:auto}.post-detail .post-image img{max-height:none;width:100%;height:auto;object-fit:contain}.post-detail-loading,.post-detail-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;padding:40px 20px}.error-content{text-align:center;margin-top:20px}.error-content h2{margin-bottom:12px;color:var(--text-primary)}.error-content p{color:var(--text-secondary)}@media (max-width: 768px){.header{padding-top:env(safe-area-inset-top);position:sticky;top:0;z-index:100}.header-content{padding:8px 16px;gap:12px}.header-logo{font-size:18px}.header-center,.app-tagline,.logo-subtitle,.user-info span,.user-email{display:none}.header-actions{gap:12px;margin:0}.header-actions .desktop-only{display:none}.header-actions .btn-icon{width:36px;height:36px}.user-profile{padding:.5rem}.app-main{padding-bottom:env(safe-area-inset-bottom)}.feed{padding:0 16px}.btn,.button,button{min-height:var(--touch-target);font-size:16px!important}.btn-icon{min-width:var(--touch-target);min-height:var(--touch-target)}input,textarea,select{font-size:16px!important;padding:12px;border-radius:var(--radius-md)}.search-input{padding:12px 12px 12px 45px!important}.form-input,input[type=text],input[type=email],textarea{font-size:16px!important;padding:12px;border-radius:var(--radius-md);width:100%;box-sizing:border-box}.post{border-radius:0;border-left:none;border-right:none;margin-bottom:0;box-shadow:none;border-bottom:8px solid var(--background-pale)}.post:hover{transform:none;box-shadow:none}.post-header{padding:12px 16px;gap:8px}.post-header>.flex:first-child{flex:1;min-width:0;overflow:hidden}.post-header .author-info{min-width:0;overflow:hidden}.post-header .author-info h3,.post-header .author-info p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.post-image{margin:0 -1px}.post-actions,.post-info{padding:12px 16px}.post-info{padding:0 16px 16px}.action-buttons{gap:16px}.action-button{padding:8px}.dishes-title{font-size:14px;margin-bottom:12px}.dishes-grid{gap:12px;grid-template-columns:1fr}.dish-card{display:block;padding:0;overflow:hidden}.dishes-grid{grid-template-columns:1fr;gap:0}.dish-image-container{width:100%;height:22vh;overflow:hidden;margin:0;padding:0;position:relative}.dish-card img,.dish-card .dish-image{width:100%;height:100%;border-radius:0;object-fit:cover;display:block}.dish-title-overlay{font-size:1.1rem}.dish-overlay-bottom{padding:12px;margin:0 -12px -12px}.dish-content{padding:16px}.dish-name{font-size:1.1rem}.dish-description{font-size:.85rem}.dish-stats{flex-direction:row;padding:10px;font-size:.75rem}.stat-item{font-size:.75rem}.ingredients-section{margin-top:12px}.ingredient-tag{font-size:.65rem;padding:3px 6px}.dish-actions{gap:6px;margin:12px 0}.action-button{font-size:.75rem;padding:8px 10px}.action-button svg{width:14px;height:14px}.modal,.upload-modal{margin:0;border-radius:0;width:100%;height:100%;max-width:100%;max-height:100%}.upload-modal-simple{max-width:100%;border-radius:0}.upload-area-large{padding:40px 20px;min-height:250px}.upload-placeholder-large h3{font-size:20px}.upload-placeholder-large p{font-size:14px}.upload-placeholder-large svg{width:48px;height:48px}.preview-section{padding:16px}.image-preview-large{max-height:300px}.caption-section{padding:20px}.upload-actions-simple{padding:20px;padding-bottom:calc(20px + env(safe-area-inset-bottom))}.post-button{min-height:var(--touch-target);font-size:16px}.upload-content{padding:12px;max-height:calc(100vh - 60px);grid-template-columns:1fr}.upload-header{padding:12px 16px}.upload-header h2{font-size:16px}.upload-actions{flex-direction:column;gap:12px;position:sticky;bottom:0;background:#fff;padding:16px;border-top:1px solid #e1e1e1;margin:0 -12px}.upload-actions button{width:100%;padding:12px;font-size:16px}.upload-sidebar{position:static}.upload-area{padding:24px 16px;border-radius:var(--radius-md)}.upload-placeholder svg{width:36px;height:36px}.upload-placeholder p{font-size:14px}.upload-hint{font-size:12px!important}.image-preview{max-width:100%;border-radius:var(--radius-md)}.remove-image{width:32px;height:32px;top:8px;right:8px}.section-header{flex-direction:column;align-items:flex-start;gap:12px}.section-header h3{font-size:16px}.toggle-dish-selection{align-self:stretch;text-align:center;padding:10px 16px}.selected-dishes-list{display:flex;flex-wrap:wrap;gap:8px}.selected-dish{background:var(--background-light);border-radius:var(--radius-md);padding:8px 4px;display:flex;align-items:center;gap:8px;font-size:11px;flex:1;min-width:0}.selected-dish img{width:20px;height:20px;border-radius:4px}.selected-dish span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.remove-dish{padding:4px;min-width:24px;height:24px}.post-type-selector{display:flex;gap:8px;background:var(--background-light);padding:4px;border-radius:var(--radius-md);margin-bottom:16px}.post-type-btn{flex:1;padding:10px 12px;font-size:14px;border-radius:6px}.post-type-btn span{font-size:13px}.create-dish-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1001}.create-dish-content{height:100vh}.create-dish-header{padding:16px;position:sticky;top:0;background:#fff;z-index:1}.create-dish-header h3{font-size:16px;margin:0}.create-dish-form{padding:16px;flex:1}.create-dish-actions{padding:16px;position:sticky;bottom:0;background:#fff}.create-dish-actions button{flex:1;padding:12px;font-size:16px}.ingredient-row{display:flex;gap:8px;margin-bottom:8px}.ingredient-row input{flex:1}.remove-ingredient{padding:8px;min-width:36px;height:36px}.nutrition-inputs{grid-template-columns:1fr 1fr;gap:12px}.nutrition-item label{font-size:12px}.nutrition-item input{padding:8px;font-size:14px!important}.food-analysis{margin:12px 0;padding:12px}.nutrition-info{flex-direction:column;gap:12px;align-items:flex-start}.calories-main{margin-right:0;margin-bottom:8px}.macros{justify-content:space-between;width:100%}.macro{min-width:50px;padding:6px 8px}.ingredients-list{gap:6px}.ingredient-tag{font-size:11px;padding:4px 8px}.form-group{margin-bottom:1rem}.form-section{margin-bottom:20px}.form-section label{font-size:14px;font-weight:600;margin-bottom:8px;display:block}.form-section textarea,.form-section input{font-size:16px!important;padding:12px;border-radius:var(--radius-md);border:1px solid var(--border-color);width:100%;box-sizing:border-box}.caption-counter{text-align:right;font-size:12px;color:var(--text-light);margin-top:4px}.card{border-radius:0;border-left:none;border-right:none;margin-bottom:0;box-shadow:none}.analytics{padding:15px}.analytics-header{flex-direction:column;text-align:center}.analytics-title h2{font-size:2rem}.stats-grid{grid-template-columns:1fr;gap:15px}.charts-section{grid-template-columns:1fr;gap:20px}.chart-container{padding:20px}.chart-wrapper{height:250px}.insights-grid{grid-template-columns:1fr}.map-container{padding:15px}.restaurant-map-container{height:300px}.restaurants-grid{grid-template-columns:1fr;gap:24px}.restaurant-card{padding:16px}.restaurant-stats{gap:15px;flex-direction:column}.filters-row{flex-direction:column}.filter-group,.filter-select{width:100%}.dish-header{flex-direction:column;align-items:flex-start;gap:8px}.dish-stats,.dish-actions{flex-wrap:wrap;gap:6px}.action-button{min-width:auto}.users-grid{grid-template-columns:1fr}.sort-controls{flex-direction:column;align-items:stretch}.sort-button{width:100%;text-align:center}.user-header{align-items:center}.user-stats{gap:10px}.recipe-content,.hero-content{grid-template-columns:1fr!important;gap:20px}.hero-image img,.dish-hero .hero-image img{height:250px}.menu-grid{grid-template-columns:1fr}.recipe-image-section{position:static}.platforms-grid,.nearby-restaurants{grid-template-columns:1fr}.dish-preview{flex-direction:column}.dish-preview-image{width:100%;height:200px}.nutrition-grid{grid-template-columns:1fr}.recipe-stats{flex-direction:column;gap:16px}.delivery-option{flex-direction:column;text-align:center;gap:12px}.engagement-actions{flex-wrap:wrap}.search-header{flex-direction:column;align-items:flex-start;gap:12px}.view-all-restaurants-button{align-self:stretch;text-align:center}.tab-navigation{flex-wrap:wrap;gap:4px}.tab-button{white-space:nowrap;min-width:auto;flex:1 1 auto;padding:12px 10px;font-size:.85rem;justify-content:center}.map-modal{margin:0;border-radius:var(--radius-xl) 16px 0 0;max-height:85vh}.map-container{height:300px}.map-modal-actions{flex-direction:column}.map-modal-overlay{align-items:flex-end;padding:0}.dish-meta{flex-direction:column;gap:16px}.dishes-title{flex-direction:column;align-items:stretch;gap:1rem}.add-dish-button{align-self:stretch;justify-content:center}.add-dish-modal{max-width:95vw;margin:20px auto}.ingredient-input-row{flex-wrap:wrap}.ingredient-name-input{min-width:200px}}.analytics{max-width:1200px;margin:0 auto;padding:20px;color:#333}.analytics-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;flex-wrap:wrap;gap:20px}.time-range-selector{display:flex;background:var(--background-gray);border-radius:var(--radius-lg);padding:4px;gap:4px}.time-range-btn{padding:8px 16px;border:none;background:transparent;border-radius:var(--radius-md);font-weight:600;color:var(--text-light-gray);cursor:pointer;transition:all .2s ease}.time-range-btn.active{background:var(--primary-gradient);color:#fff;box-shadow:0 2px 8px #667eea4d}.time-range-btn:hover:not(.active){background:#e9ecef;color:#333}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:40px}.stat-card{background:var(--primary-gradient);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:0 4px 20px #00000014;border:1px solid var(--background-pale);display:flex;align-items:center;gap:16px;transition:transform .2s ease,box-shadow .2s ease;color:var(--background-white);text-align:center}.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000001f}.stat-icon{width:48px;height:48px;border-radius:var(--radius-lg);background:var(--primary-gradient);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:600;font-size:1.2rem;color:var(--accent-indigo)}.stat-icon .icon{width:24px;height:24px;color:#fff}.stat-content h3{font-size:2rem;font-weight:800;margin:0 0 4px;color:#333}.stat-content p{font-size:.9rem;color:var(--text-light-gray);margin:0;font-weight:500}.charts-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:30px;margin-bottom:40px}.chart-container{background:#fff;border-radius:var(--radius-xl);padding:24px;box-shadow:0 4px 20px #00000014;border:1px solid var(--background-pale)}.chart-container.full-width{grid-column:1 / -1}.chart-title{font-size:1.3rem;font-weight:700;margin:0 0 20px;color:#333}.chart-wrapper{width:100%;height:300px}.tooltip{background:#fff;border:1px solid var(--background-pale);border-radius:var(--radius-lg);padding:12px 16px;box-shadow:0 8px 25px #00000026}.tooltip-label{font-weight:600;color:#333;margin:0 0 4px;font-size:.9rem}.tooltip-value{margin:0}.tooltip-calories{font-weight:700;color:#667eea;font-size:1.1rem}.tooltip-posts{font-size:.85rem;color:var(--text-light-gray);margin:4px 0 0}.insights-section{margin-top:40px}.insights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.insight-card{background:var(--primary-gradient);border-radius:var(--radius-xl);padding:24px;color:#fff;box-shadow:0 4px 20px #667eea4d;transition:transform .2s ease}.insight-card:hover{transform:translateY(-2px)}.insight-card h4{font-size:1.2rem;font-weight:700;margin:0 0 8px}.insight-card p{font-size:.95rem;margin:0;opacity:.9;line-height:1.5}.restaurants-section{margin:40px 0}.calendar-section{margin:30px 0}.calendar-wrapper{background:#fff;padding:20px;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:visible;width:100%}.calendar-wrapper>div{width:100%!important}.heatmap-container{width:100%!important;display:block}.heatmap-container>svg{width:100%!important;height:auto!important;display:block}.section-title{font-size:1.8rem;font-weight:700;margin:0 0 25px;color:#333;text-align:center}.map-section{margin:40px 0}.map-container{background:#fff;border-radius:var(--radius-xl);padding:20px;box-shadow:0 4px 20px #00000014;border:1px solid var(--background-pale);height:400px;flex:1;position:relative}.restaurant-card{background:#fff;border-radius:var(--radius-lg);box-shadow:0 4px 20px #00000014;border:1px solid var(--border-light);display:flex;flex-direction:column;transition:all .2s ease;overflow:hidden}.restaurant-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000001f}.restaurant-image{width:100%;height:180px;position:relative;overflow:hidden}.restaurant-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.restaurant-card:hover .restaurant-image img{transform:scale(1.05)}.restaurant-rating{position:absolute;top:12px;right:12px;background:#fffffff2;color:#fff;padding:8px 12px;border-radius:var(--radius-md);font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:4px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.restaurant-content{padding:16px;display:flex;flex-direction:column;flex-grow:1}.restaurant-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.restaurant-name{font-size:1.2rem;font-weight:600;color:var(--text-dark);margin:0}.restaurant-meta{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap;justify-content:space-between}.cuisine-tag{background:var(--background-off-white);padding:4px 8px;border-radius:6px;font-size:.8rem;color:var(--text-secondary);font-weight:500}.price-range{font-weight:600;color:var(--success-dark);background:var(--background-off-white);padding:6px 12px;border-radius:var(--radius-md);font-size:.9rem}.restaurant-location{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:.9rem;cursor:pointer;transition:all .2s ease;padding:4px;border-radius:6px;margin:-4px}.restaurant-description{font-size:.9rem;color:var(--text-gray);line-height:1.6;margin-bottom:24px;flex-grow:1}.restaurant-stats{display:flex;justify-content:space-around;border-top:1px solid var(--background-pale);padding-top:12px;margin-bottom:24px;gap:24px}.stat{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-secondary);text-align:center;flex:1}.popular-dishes,.featured-dishes{margin-bottom:16px}.popular-dishes h4,.featured-dishes h4{font-size:.9rem;font-weight:600;margin-bottom:8px;color:#333}.dishes-list{display:flex;flex-wrap:wrap;gap:6px;color:var(--text-gray);word-wrap:break-word;overflow-wrap:break-word}.dish-tag{background:#eef2ff;color:var(--accent-indigo);padding:4px 8px;border-radius:6px;font-size:.75rem;font-weight:500}.featured-dish{display:flex;align-items:center;gap:12px;margin-bottom:8px}.featured-dish img{width:50px;height:50px;border-radius:var(--radius-md);object-fit:cover}.dish-info h5{font-size:.9rem;font-weight:600;margin:0 0 4px}.dish-details{display:flex;gap:8px;font-size:.8rem;color:var(--text-light-gray)}.dish-price{font-weight:600;color:var(--success-dark)}.restaurant-actions{display:flex;gap:8px;margin-top:auto;padding-top:12px;border-top:1px solid var(--background-pale);align-items:center;flex-wrap:wrap}.primary-button,.secondary-button{padding:8px 12px;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all .2s ease;font-size:.85rem;display:flex;align-items:center;gap:6px;background:var(--background-off-white);color:var(--text-gray);border:1px solid var(--border-light)}.primary-button{background:var(--primary-gradient);color:#fff;border:none;flex-grow:1;justify-content:center}.primary-button:hover{opacity:.9}.secondary-button:hover{background:var(--border-light)}.restaurants-page{max-width:1200px;margin:0 auto;padding:20px}.page-header{margin-bottom:2.5rem;text-align:center}.page-controls{background:#fff;border-radius:var(--radius-xl);padding:20px;margin-top:20px;box-shadow:0 4px 12px #0000000d;display:flex;flex-direction:column;gap:20px}.filter-controls{display:flex;gap:15px;flex-wrap:wrap}.view-toggle{display:flex;background:var(--background-gray);border-radius:var(--radius-lg);padding:4px;gap:4px;align-self:flex-start}.view-btn{padding:8px 16px;border:none;background:transparent;border-radius:var(--radius-md);font-weight:600;color:var(--text-light-gray);cursor:pointer;transition:all .2s ease}.view-btn.active{background:var(--primary-gradient);color:#fff;box-shadow:0 2px 8px #667eea4d}.restaurants-map-view{margin-top:20px}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:16px}.dishes-container{max-width:1200px;margin:0 auto;padding:20px}.dishes-page-header{display:flex;justify-content:flex-end;margin-bottom:20px}.dishes-controls{background:#fff;border-radius:var(--radius-xl);padding:20px;margin-bottom:20px;box-shadow:0 4px 12px #0000000d}.search-bar{position:relative;margin-bottom:20px}.search-input-container .search-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--text-secondary, #6b7280);z-index:2;pointer-events:none}.search-loading-spinner{position:absolute;right:15px;top:50%;transform:translateY(-50%);width:16px;height:16px;border:2px solid var(--border-light);border-top:2px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}.search-predictions{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--border-light);border-top:none;border-radius:0 0 12px 12px;box-shadow:0 4px 6px -1px #0000001a;max-height:300px;overflow-y:auto;z-index:1000}.prediction-item{display:flex;align-items:center;gap:12px;padding:12px 15px;cursor:pointer;border-bottom:1px solid var(--background-off-white);transition:background-color .2s ease}.prediction-item:hover{background-color:var(--background-light)}.prediction-item:last-child{border-bottom:none}.prediction-icon{color:#9ca3af;flex-shrink:0}.prediction-content{flex:1;min-width:0}.prediction-main{font-weight:500;color:#111827;margin-bottom:2px}.prediction-secondary{font-size:.875rem;color:var(--text-secondary);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.filters-row{display:flex;gap:15px;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:8px}.filter-select{padding:8px 12px;border:2px solid var(--border-light);border-radius:var(--radius-md);background:#fff;font-size:.9rem;min-width:140px}.stat-label{font-size:.9rem;opacity:.9;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.dishes-page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:30px}.dishes-page-card{background:#fff;border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 4px 12px #00000014;transition:all .3s ease;position:relative;min-height:650px;display:flex;flex-direction:column}.dishes-page-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px #00000026}.trending-badge{position:absolute;top:12px;left:12px;background:linear-gradient(135deg,var(--like-color),#ff8e8e);color:#fff;padding:6px 12px;border-radius:20px;font-size:.8rem;font-weight:600;z-index:2;display:flex;align-items:center;min-height:100%;gap:4px}.dish-image-container{position:relative;height:280px;overflow:hidden}.dish-image{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.dish-card:hover .dish-image{transform:scale(1.05)}.dish-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;justify-content:space-between;padding:12px}.dish-overlay-top{display:flex;justify-content:flex-end;align-items:flex-start}.dish-overlay-bottom{background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 50%,transparent 100%);padding:16px;margin:0 -12px -12px}.dish-title-overlay{color:#fff;font-size:1.3rem;font-weight:700;text-shadow:0 2px 4px var(--overlay-dark);margin:0}.like-button{background:#ffffffe6;border:1px solid var(--border-light);border-radius:var(--radius-md);padding:8px 12px;display:flex;align-items:center;gap:8px;font-size:.8rem;cursor:pointer;transition:all .2s ease;color:var(--text-secondary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.like-button:hover{background:#fff;transform:scale(1.05)}.dish-content{padding:20px;flex:1;display:flex;flex-direction:column;gap:16px;margin-top:30px}.dish-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.1em}.dish-name{font-size:1.3rem;font-weight:700;color:var(--text-dark);flex:1;margin-right:10px}.restaurant-info{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--text-secondary)}.dish-description{color:var(--text-gray);font-size:.9rem;line-height:1.6;margin-bottom:24px}.dish-stats{display:flex;justify-content:space-around;align-items:center;padding:20px;background:var(--background-light);border-radius:var(--radius-lg);margin-bottom:30px}.stat-item{display:flex;align-items:center;gap:12px;font-size:.8rem;color:var(--text-secondary)}.price{font-weight:700;color:var(--success-dark);font-size:2rem}.dietary-tags{display:flex;flex-wrap:wrap;gap:6px}.dietary-tag{background:#dcfce7;color:#166534;padding:2px 6px;border-radius:4px;font-size:.75rem;font-weight:500}.ingredients-title{font-size:.9rem;font-weight:600;color:var(--text-gray);margin-bottom:8px}.ingredient-tag.more{background:var(--accent-indigo);color:#fff}.dish-actions{display:flex;gap:8px;margin:15px 0;flex-wrap:wrap}.action-button:hover{background:var(--background-light);border-color:var(--border-medium);transform:translateY(-1px)}.action-button.make-at-home:hover{background:#ecfdf5;border-color:var(--success-color);color:var(--success-color)}.action-button.get-delivered:hover{background:var(--info-bg);border-color:#3b82f6;color:#3b82f6}.action-button.find-restaurant:hover{background:var(--warning-bg);border-color:var(--warning-color);color:var(--warning-color)}.dish-meta-info{margin-top:10px}.no-results{text-align:center;padding:60px 20px;color:var(--text-secondary)}.no-results-icon{font-size:4rem;margin-bottom:20px}.no-results h3{font-size:1.5rem;margin-bottom:10px;color:var(--text-gray)}.people-container{max-width:1200px;margin:0 auto;padding:2rem}.people-controls{background:#fff;border-radius:var(--radius-xl);padding:20px;margin-bottom:20px;box-shadow:0 4px 12px #0000000d}.search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--text-muted);z-index:2;pointer-events:none}.search-input::placeholder{padding-left:0;text-indent:0}.search-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px var(--primary-alpha-10)}.sort-controls{display:flex;gap:10px;align-items:center}.sort-button.active{background:var(--primary-gradient);color:#fff;border-color:transparent}.users-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:25px;margin-top:20px}.user-card{background:var(--background-white);border-radius:var(--radius-xl);padding:1.5rem;box-shadow:var(--shadow-md);transition:all .3s ease;border:1px solid var(--border-light);position:relative;overflow:hidden}.user-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--primary-gradient);transform:scaleX(0);transition:transform .3s ease}.user-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.user-card:hover:before{transform:scaleX(1)}.user-header{display:flex;align-items:flex-start;gap:15px;margin-bottom:15px}.user-avatar{width:4rem;height:4rem;border-radius:var(--radius-full);overflow:hidden;flex-shrink:0;background:var(--primary-gradient);display:flex;align-items:center;justify-content:center;position:relative;border:3px solid var(--background-white);box-shadow:var(--shadow-md)}.user-avatar img{width:100%;height:100%;object-fit:cover}.user-info{flex:1;min-width:0}.user-name{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem;line-height:1.3}.user-username{color:var(--text-secondary);font-size:.9rem;margin-bottom:.5rem;font-weight:500}.user-location{display:flex;align-items:center;gap:.25rem;color:var(--text-muted);font-size:.8rem;font-weight:500}.user-bio{color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin-bottom:15px;font-style:italic}.user-stats{display:flex;justify-content:space-between;margin-bottom:15px;padding:12px;background:var(--background-light);border-radius:var(--radius-md)}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--text-dark)}.user-food-stats{display:flex;flex-direction:column;gap:8px;margin-bottom:15px}.food-stat{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-secondary)}.user-favorites{margin-bottom:20px}.favorites-section{margin-bottom:16px}.favorites-section:last-child{margin-bottom:0}.favorites-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.favorites-section h4{font-size:.9rem;font-weight:600;color:var(--text-gray);margin:0;display:flex;align-items:center;gap:6px}.user-actions{margin-top:20px;margin-bottom:15px}.user-joined{font-size:.75rem;color:var(--text-muted);text-align:center;margin-top:10px}.favorite-tag{background:linear-gradient(135deg,var(--success-color),var(--success-dark));color:#fff;padding:4px 8px;border-radius:var(--radius-lg);font-size:.7rem;font-weight:600}.follow-button{width:100%;padding:10px;background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all .3s ease}.follow-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.follow-button.following{background:linear-gradient(135deg,#48bb78 0%,var(--success-darker) 100%)}.follow-button.following:hover{background:linear-gradient(135deg,#e53e3e,#c53030);box-shadow:0 4px 12px #e53e3e4d}.error-banner{background:linear-gradient(135deg,var(--error-bg) 0%,var(--error-border) 100%);border:1px solid #fca5a5;border-radius:var(--radius-lg);padding:16px 20px;margin:20px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}.error-banner p{margin:0;color:var(--error-dark);font-weight:500;flex:1}.retry-button{background:var(--background-off-white);color:var(--text-gray);border:1px solid var(--border-medium);border-radius:var(--radius-md);padding:10px 20px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.retry-button:hover{background:var(--error-darker);transform:translateY(-1px)}.add-dish-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.add-dish-button:active{transform:translateY(0)}.add-dish-modal{max-width:800px;max-height:90vh;overflow-y:auto}.dish-form{max-height:70vh;overflow-y:auto;padding-right:8px}.ingredients-input-list{display:flex;flex-direction:column;gap:.75rem}.ingredient-input-row{display:flex;align-items:center;gap:.5rem}.ingredient-name-input{flex:1;padding:8px 12px;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:.875rem;transition:border-color .2s ease}.ingredient-name-input:focus{outline:none;border-color:var(--primary-color)}.ingredient-confidence-input{width:60px;padding:8px;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:.875rem;text-align:center;transition:border-color .2s ease}.ingredient-confidence-input:focus{outline:none;border-color:var(--primary-color)}.confidence-label{font-size:.875rem;color:var(--text-secondary);font-weight:500}.remove-ingredient:hover{background:var(--error-border);transform:scale(1.05)}.add-ingredient:hover{background:var(--background-white);border-color:var(--primary-color);color:var(--primary-color)}.nutrition-input-group{display:flex;flex-direction:column;gap:.5rem}.nutrition-input-group label{font-size:.875rem;font-weight:600;color:var(--text-secondary)}.nutrition-input{padding:8px 12px;border:1px solid var(--border-medium);border-radius:6px;font-size:.95rem;transition:border-color .2s ease;width:100%}.ingredients-container{max-width:1200px;margin:0 auto;padding:20px}.ingredients-page-header{display:flex;justify-content:flex-end;margin-bottom:20px}.ingredients-controls{background:#fff;border-radius:var(--radius-xl);padding:20px;margin-bottom:20px;box-shadow:0 4px 12px #0000000d}.ingredients-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-secondary)}.ingredients-page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.ingredient-card{background:#fff;border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 4px 12px #00000014;transition:all .3s ease;cursor:pointer;display:flex;flex-direction:column}.ingredient-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px #00000026}.ingredient-image-container{position:relative;height:180px;overflow:hidden;background:var(--background-off-white)}.ingredient-image{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.ingredient-card:hover .ingredient-image{transform:scale(1.05)}.ingredient-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--background-off-white),var(--background-light));color:var(--text-secondary)}.ingredient-actions-overlay{position:absolute;top:8px;right:8px;display:flex;gap:6px;opacity:0;transition:opacity .2s ease;z-index:10}.ingredient-card:hover .ingredient-actions-overlay{opacity:1}.ingredient-action-btn{width:32px;height:32px;min-width:32px;min-height:32px;max-width:32px;max-height:32px;padding:0;aspect-ratio:1 / 1;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 2px 8px #00000026;flex-shrink:0}.ingredient-action-btn svg{flex-shrink:0;width:16px;height:16px}.ingredient-action-btn.edit{background:#ffffffe6;color:var(--primary-color)}.ingredient-action-btn.edit:hover{background:var(--primary-color);color:#fff}.ingredient-action-btn.delete{background:#ffffffe6;color:var(--error-color)}.ingredient-action-btn.delete:hover{background:var(--error-color);color:#fff}.ingredient-action-btn.delete.confirm{background:var(--error-color);color:#fff;animation:pulse .5s ease infinite}.ingredient-content{padding:16px;flex:1;display:flex;flex-direction:column;gap:24px}.ingredient-title{font-size:1.1rem;font-weight:600;color:var(--text-dark);margin:0}.ingredient-category-badge{display:inline-flex;align-items:center;gap:4px;background:var(--background-off-white);color:var(--text-secondary);padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:500;width:fit-content}.ingredient-description{font-size:.875rem;color:var(--text-secondary);line-height:1.5;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}.ingredient-meta{margin-top:auto;padding-top:8px;border-top:1px solid var(--border-light)}.ingredient-meta .dish-count{font-size:.8rem;color:var(--text-secondary)}.add-ingredient-button{display:flex;align-items:center;gap:8px;background:var(--success-color);color:#fff;border:none;border-radius:6px;padding:8px 12px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;box-shadow:var(--shadow-md);align-self:flex-start}.add-ingredient-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.add-ingredient-button:active{transform:translateY(0)}.add-ingredient-modal{max-width:600px;width:100%;max-height:90vh;overflow-y:auto;overflow-x:hidden}.add-ingredient-modal .upload-content{display:flex;flex-direction:column;width:100%;overflow-x:hidden;padding:24px;box-sizing:border-box}.add-ingredient-modal .upload-form-container{width:100%;display:flex;flex-direction:column;gap:20px}.ingredient-image-section{width:100%;margin-bottom:20px}.ingredient-drop-zone{width:100%;height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed var(--border-light);border-radius:var(--radius-lg);background:var(--background-off-white);cursor:pointer;transition:all .2s ease;box-sizing:border-box}.ingredient-drop-zone:hover{border-color:var(--primary-color);background:var(--primary-light)}.ingredient-preview{width:100%;height:200px;border-radius:var(--radius-lg);overflow:hidden}.ingredient-preview .preview-image{width:100%;height:100%;object-fit:cover}.ingredient-form{width:100%;display:flex;flex-direction:column;gap:16px}.add-ingredient-modal .form-section{width:100%}.add-ingredient-modal .form-section input,.add-ingredient-modal .form-section select,.add-ingredient-modal .form-section textarea{width:100%;box-sizing:border-box}.add-ingredient-modal .add-alias-row input{width:auto;flex:1;min-width:0}.add-ingredient-modal .add-alias-btn{width:42px!important;flex:0 0 42px}.add-ingredient-modal .submit-button{width:100%;padding:14px 24px;background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-lg);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.add-ingredient-modal .submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.add-ingredient-modal .submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.category-select{width:100%;padding:12px;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:.95rem;background:#fff;cursor:pointer;transition:border-color .2s ease}.category-select:focus{outline:none;border-color:var(--primary-color)}.description-textarea{width:100%;padding:12px;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:.95rem;resize:vertical;min-height:80px;font-family:inherit;transition:border-color .2s ease}.description-textarea:focus{outline:none;border-color:var(--primary-color)}.form-hint{color:var(--text-secondary);font-size:.8rem;margin-top:4px}.aliases-section label,.edit-section.aliases-section label{display:flex!important;align-items:center;gap:6px}.aliases-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.alias-tag{display:inline-flex;align-items:center;gap:6px;background:var(--background-off-white);border:1px solid var(--border-light);border-radius:20px;padding:6px 10px 6px 14px;font-size:.875rem;color:var(--text-primary)}.remove-alias-btn{background:none;border:none;padding:2px;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.remove-alias-btn:hover{background:var(--error-bg);color:var(--error-color)}.add-alias-row{display:flex;gap:8px;align-items:center}.add-alias-row .alias-input{flex:1;min-width:0}.alias-input{flex:1;padding:10px 14px;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:.9rem;transition:border-color .2s ease}.alias-input:focus{outline:none;border-color:var(--primary-color)}.add-alias-btn{width:42px!important;height:42px!important;min-width:42px!important;max-width:42px!important;flex-shrink:0;display:flex!important;align-items:center;justify-content:center;background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;padding:0}.add-alias-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.add-alias-btn:disabled{opacity:.5;cursor:not-allowed}.alias-error{color:var(--error-color);font-size:.85rem;margin-top:8px}@media (max-width: 768px){.ingredients-page-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.ingredient-image-container{height:150px}.add-ingredient-modal{max-width:100%;margin:10px;max-height:calc(100vh - 20px)}}@media (max-width: 480px){.ingredients-page-grid{grid-template-columns:1fr}.ingredients-controls{padding:15px}}.back-button:hover{background:var(--background-light);border-color:var(--border-medium)}.recipe-content{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.nutrition-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.ingredient-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--background-off-white);gap:12px}.ingredient-name{font-weight:500;color:var(--text-dark);flex:1;margin-left:0}.ingredient-confidence{font-size:.9rem;color:var(--success-color);font-weight:500}.recipe-steps h3{margin-bottom:20px;color:var(--text-dark)}.steps-list{list-style:none;padding:0;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden}.recipe-step{display:flex;gap:16px;margin-bottom:20px;align-items:flex-start;padding:20px;border-bottom:1px solid var(--background-off-white);transition:all .2s ease}.step-number{width:28px;height:28px;background:var(--accent-indigo);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem;flex-shrink:0;margin-top:2px}.step-text{color:var(--text-gray);line-height:1.6;padding-top:6px;flex:1}.delivery-options h2{margin-bottom:10px;color:var(--text-dark)}.feature{display:flex;align-items:center;gap:4px;color:var(--text-secondary);font-size:.8rem}.recipe-loading,.order-loading,@media (max-width: 768px){.recipe-content{grid-template-columns:1fr;gap:20px}.recipe-image-section{position:static}.platforms-grid{grid-template-columns:1fr}.dish-preview{flex-direction:column}.dish-preview-image{width:100%;height:200px}.nutrition-grid{grid-template-columns:1fr}}.nutrition-input:focus{outline:none;border-color:var(--primary-color)}.dishes-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px}.restaurant-page{max-width:1200px;margin:0 auto;padding:20px}.restaurant-page .back-button{position:relative;z-index:10;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.restaurant-page .back-button svg{flex-shrink:0}.restaurant-hero{margin-bottom:40px}.hero-content{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.hero-image{position:relative;border-radius:var(--radius-xl);overflow:hidden}.hero-image img{width:100%;height:400px;object-fit:cover}.hero-overlay{position:absolute;top:20px;right:20px}.rating-count{color:#9ca3af;font-weight:400;font-size:.8rem;margin-left:4px}.hero-info h1{font-size:2.5rem;font-weight:700;color:var(--text-dark);margin-bottom:16px}.cuisine-tag,.status{padding:6px 12px;border-radius:var(--radius-md);font-size:.9rem;font-weight:500}.status.open{background:#d1fae5;color:#065f46}.status.closed{background:var(--error-bg);color:#991b1b}.menu-section{margin-top:40px}.menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.menu-header h2{font-size:2rem;font-weight:700;color:var(--text-dark)}.menu-categories{display:flex;gap:8px;flex-wrap:wrap}.category-btn{padding:8px 16px;border:1px solid var(--border-light);background:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;font-size:.9rem}.category-btn:hover{background:var(--background-light)}.category-btn.active{background:var(--accent-indigo);color:#fff;border-color:var(--accent-indigo)}.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.menu-item{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:all .2s ease}.menu-item:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000001a}.menu-item-image{position:relative;height:200px}.menu-item-image img{width:100%;height:100%;object-fit:cover}.calories-badge{position:absolute;top:12px;right:12px;background:#000000b3;color:#fff;padding:4px 8px;border-radius:6px;font-size:.8rem;display:flex;align-items:center;gap:4px}.menu-item-content{padding:16px}.menu-item-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:8px}.menu-item-header h3{font-size:1.1rem;font-weight:600;color:var(--text-dark);flex:1;margin-right:12px}.menu-item-description{color:var(--text-secondary);font-size:.9rem;line-height:1.4;margin-bottom:12px}.dish-page{max-width:1000px;margin:0 auto;padding:20px}.dish-hero{margin-bottom:40px}.dish-hero .hero-content{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.dish-hero .hero-image img{width:100%;height:350px;object-fit:cover;border-radius:var(--radius-xl)}.calories-overlay{position:absolute;bottom:16px;right:16px;background:#000c;color:#fff;padding:8px 12px;border-radius:var(--radius-md);display:flex;align-items:center;gap:6px;font-weight:500}.dish-meta{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.dish-hero h1{font-size:2.2rem;font-weight:700;color:var(--text-dark);margin-bottom:16px}.dish-restaurant-info{display:flex;align-items:center;gap:8px;margin-bottom:20px;padding:12px 16px;background:var(--indigo-alpha-5);border-radius:var(--radius-md);border-left:3px solid var(--accent-indigo)}.restaurant-location-text{display:flex;align-items:center;flex:1;font-size:.95rem;color:var(--text-secondary)}.dish-restaurant-name-link{color:var(--accent-indigo);cursor:pointer;font-weight:500;transition:all .2s ease;border-radius:4px;padding:2px 4px}.dish-restaurant-name-link:hover{color:var(--accent-indigo-dark);background:#4f46e51a;text-decoration:underline}.dish-cost{color:var(--success-dark);font-weight:600;font-size:1rem;margin-left:auto}.dish-hero-ingredients{margin-bottom:16px}.hero-ingredients-list{display:flex;flex-wrap:wrap;gap:8px}.hero-ingredient-tag{display:inline-block;padding:6px 12px;background:var(--background-light);border-radius:20px;font-size:.85rem;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.hero-ingredient-tag:hover{background:var(--accent-indigo);color:#fff}.restaurant-link{display:flex;align-items:center;gap:4px;padding:6px 8px;background:var(--background-light);border-radius:4px;cursor:pointer;transition:all .2s ease;margin-bottom:24px;color:var(--text-secondary);text-decoration:none;font-size:.85rem}.restaurant-link:hover{background:var(--background-off-white)}.restaurant-details{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:.9rem;padding:16px;overflow:hidden}.serving-adjuster{display:flex;align-items:center;gap:12px;margin-bottom:24px;padding:16px;background:var(--background-light);border-radius:var(--radius-lg);font-weight:500}.serving-controls{display:flex;align-items:center;gap:12px}.serving-controls button{width:36px;height:36px;min-width:36px;min-height:36px;border:1px solid var(--border-medium);background:#fff;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:18px;line-height:1;transition:all .2s ease;flex-shrink:0;padding:0}.serving-controls button:hover{background:#667eea;color:#fff;border-color:#667eea}.serving-controls span{min-width:32px;text-align:center;font-weight:600;font-size:18px}.ingredients-section h3{font-size:1.3rem;font-weight:600;color:var(--text-dark);margin-bottom:16px}.ingredient-item.ingredient-clickable{cursor:pointer;padding:8px 12px;margin:0 -12px;border-radius:8px;transition:background-color .2s ease}.ingredient-item.ingredient-clickable:hover{background-color:var(--background-off-white)}.ingredient-item.ingredient-clickable .ingredient-name{color:var(--primary-color);text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .2s ease}.ingredient-item.ingredient-clickable:hover .ingredient-name{text-decoration-color:var(--primary-color)}.ingredient-page{max-width:600px;margin:0 auto;padding:20px 20px 100px}.ingredient-page-loading,.ingredient-page-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center;padding:20px}.ingredient-page-loading p{margin-top:16px;color:var(--text-secondary)}.ingredient-page-error h2{font-size:1.5rem;margin-bottom:8px;color:var(--text-dark)}.ingredient-page-error p{color:var(--text-secondary);margin-bottom:20px}.ingredient-page .back-button{display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);background:none;border:none;padding:8px 0;margin-bottom:16px;font-weight:500;font-size:.95rem;cursor:pointer;transition:color .2s ease}.ingredient-page .back-button:hover{color:var(--text-dark)}.ingredient-hero{background:linear-gradient(135deg,var(--primary-color) 0%,#2a9aa8 100%);border-radius:var(--radius-xl);padding:24px;margin-bottom:24px;color:#fff}.ingredient-hero .hero-content{display:flex;align-items:center;gap:20px}.ingredient-hero .hero-image{width:80px;height:80px;border-radius:var(--radius-lg);overflow:hidden;flex-shrink:0;background:#fff3}.ingredient-hero .hero-image img{width:100%;height:100%;object-fit:cover}.ingredient-hero .hero-image-placeholder{width:80px;height:80px;border-radius:var(--radius-lg);background:#fff3;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ingredient-hero .hero-image-placeholder svg{color:#fffc}.ingredient-hero .hero-info{flex:1;min-width:0}.ingredient-hero h1{font-size:1.5rem;margin:0 0 4px;font-weight:700;text-transform:capitalize}.ingredient-hero .ingredient-category{display:inline-flex;align-items:center;gap:6px;background:#fff3;padding:4px 10px;border-radius:20px;font-size:.85rem;margin-bottom:8px}.ingredient-hero .ingredient-description{margin:8px 0 0;opacity:.9;font-size:.9rem;line-height:1.4}.ingredient-page .grocery-section{background:#fff;border-radius:var(--radius-xl);padding:20px;box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}.ingredient-page .grocery-section h2{font-size:1.1rem;font-weight:600;color:var(--text-dark);margin:0 0 4px;display:flex;align-items:center;gap:8px}.ingredient-page .grocery-section h2 svg{color:var(--primary-color)}.ingredient-page .section-subtitle{color:var(--text-secondary);font-size:.85rem;margin:0 0 16px}.ingredient-page .grocery-options{display:flex;flex-direction:column;gap:10px}.ingredient-page .grocery-button{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--background-light);border:1px solid var(--border-light);border-radius:var(--radius-lg);text-decoration:none;color:var(--text-dark);font-weight:500;font-size:.95rem;transition:all .2s ease}.ingredient-page .grocery-button:hover{background:#fff;border-color:var(--primary-color);transform:translate(4px)}.ingredient-page .grocery-button:active{transform:translate(2px)}.ingredient-page .grocery-logo{width:32px;height:32px;object-fit:contain;border-radius:6px}.ingredient-page .grocery-button span{flex:1}.ingredient-page .grocery-button:after{content:"→";color:var(--text-secondary);font-size:1.1rem;transition:transform .2s ease}.ingredient-page .grocery-button:hover:after{transform:translate(4px);color:var(--primary-color)}.ingredient-page .dishes-section{background:#fff;border-radius:var(--radius-xl);padding:20px;box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}.ingredient-page .dishes-section h2{font-size:1.1rem;font-weight:600;color:var(--text-dark);margin:0 0 4px;display:flex;align-items:center;gap:8px}.ingredient-page .dishes-section h2 svg{color:var(--primary-color)}.ingredient-page .dishes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.ingredient-page .dish-card{display:flex;flex-direction:column;background:var(--background-light);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:all .2s ease;border:1px solid var(--border-light)}.ingredient-page .dish-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--primary-color)}.ingredient-page .dish-card:active{transform:translateY(0)}.ingredient-page .dish-card .dish-image{width:100%;aspect-ratio:1;object-fit:cover;background:var(--background-off-white)}.ingredient-page .dish-card .dish-info{padding:10px}.ingredient-page .dish-card .dish-info h3{font-weight:600;color:var(--text-dark);margin:0;font-size:.9rem;line-height:1.3;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ingredient-page .dish-card .dish-description{font-size:.8rem;color:var(--text-secondary);margin:4px 0 0;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (max-width: 400px){.ingredient-page .dishes-grid{grid-template-columns:1fr}.ingredient-hero .hero-content{flex-direction:column;text-align:center}.ingredient-hero h1{font-size:1.3rem}}.ingredient-bullet{color:var(--success-color);font-weight:700}.nutrition-item:last-child{border-bottom:none}.nutrition-label{color:var(--text-secondary)}.nutrition-value{font-weight:600;color:var(--text-dark)}.restaurant-page-loading,.dish-page-loading,.restaurant-page-error,.dish-page-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center}.restaurant-page-loading p,.dish-page-loading p{margin-top:16px;color:var(--text-secondary)}.restaurant-page-error h2,.dish-page-error h2{color:var(--error-color);margin-bottom:16px}.map-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.map-modal{background:#fff;border-radius:var(--radius-xl);max-width:800px;width:100%;max-height:90vh;overflow:hidden;box-shadow:var(--shadow-3xl);display:flex;flex-direction:column}.map-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--border-light);background:var(--background-light)}.modal-title{display:flex;align-items:center;gap:12px}.modal-title h3{font-size:1.2rem;font-weight:600;color:var(--text-dark);margin:0 0 4px}.modal-title p{color:var(--text-secondary);font-size:.9rem;margin:0}.close-button:hover{background:var(--border-light);color:var(--text-gray)}.map-modal-actions{display:flex;gap:12px;padding:20px;border-top:1px solid var(--border-light);background:var(--background-light)}.map-modal-actions .primary-button,.map-modal-actions .secondary-button{flex:1;justify-content:center;padding:12px 16px}.restaurant-location:hover{background:var(--background-off-white);color:var(--accent-indigo)}.dish-page .dish-meta{display:flex;justify-content:space-between;align-items:start;margin-bottom:20px}.author-name{font-weight:600;color:var(--text-dark)}.post-date{color:var(--text-secondary);font-size:.9rem}.edit-button{display:flex;align-items:center;gap:8px;background:#ffffffe6;border:1px solid var(--border-medium);border-radius:var(--radius-md);padding:8px 12px;cursor:pointer;transition:all .2s ease;font-size:.9rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text-gray)}.edit-button:hover{background:#e5e7ebf2;border-color:#9ca3af}.edit-form{background:var(--background-light);padding:20px;border-radius:var(--radius-lg);margin-bottom:20px}.save-button{display:flex;align-items:center;gap:8px;background:var(--success-color);color:#fff;border:none;border-radius:var(--radius-md);padding:10px 16px;cursor:pointer;transition:all .2s ease}.save-button:hover{background:var(--success-dark)}.edit-section{margin-bottom:24px}.edit-section label{display:block;font-weight:600;color:var(--text-gray);margin-bottom:8px}.edit-input,.edit-textarea{width:100%;padding:12px;border:1px solid var(--border-medium);border-radius:var(--radius-md);font-size:1rem;transition:border-color .2s ease}.edit-input:focus,.edit-textarea:focus{outline:none;border-color:var(--accent-indigo);box-shadow:0 0 0 3px #4f46e51a}.ingredients-edit{display:flex;flex-direction:column;gap:8px}.ingredient-edit-item{display:flex;gap:8px;align-items:center}.ingredient-input{flex:1;padding:8px 12px;border:1px solid var(--border-medium);border-radius:6px;font-size:.95rem}.remove-ingredient-button{background:var(--error-color);color:#fff;border:none;border-radius:6px;padding:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.remove-ingredient-button:hover{background:var(--error-dark)}.add-ingredient-button:hover{background:var(--success-dark)}.nutrition-edit{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.nutrition-edit-item{display:flex;flex-direction:column;gap:4px}.nutrition-edit-item label{font-size:.9rem;font-weight:500;color:var(--text-secondary);margin-bottom:4px}.edit-actions{display:flex;gap:12px;align-items:center;margin-top:24px;padding-top:20px;border-top:1px solid var(--border-light)}.delete-button{display:flex;align-items:center;gap:8px;background:var(--error-color);color:#fff;border:none;border-radius:var(--radius-md);padding:10px 16px;cursor:pointer;transition:all .2s ease}.delete-button:hover{background:var(--error-dark)}.engagement-actions{display:flex;align-items:center;gap:16px;margin-bottom:20px}.like-button:hover{background:#fef2f2f2;border-color:#f87171}.like-button.liked{color:var(--error-color);background:#fef2f2f2;border-color:var(--error-color)}.view-count{color:var(--text-secondary);font-size:.9rem}.tab-navigation{display:flex;border-bottom:1px solid var(--border-light);margin-bottom:30px}.tab-button{display:flex;align-items:center;gap:8px;background:none;border:none;padding:16px 24px;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s ease;color:var(--text-secondary);font-weight:500}.tab-button:hover{color:var(--text-gray);background:var(--background-light)}.tab-button.active{color:var(--accent-indigo);border-bottom-color:var(--accent-indigo);background:#fafbff}.tab-content{min-height:300px}.recipe-content .ingredients-section{margin-bottom:30px}.ingredient-item:last-child{border-bottom:none}.nutrition-section h3{margin-bottom:16px;color:var(--text-dark)}.recipe-stats{display:flex;justify-content:space-around;background:var(--background-light);border-radius:var(--radius-lg);padding:20px}.instructions-text{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:20px;line-height:1.7}.instructions-text p{margin:0 0 12px;color:var(--text-gray)}.instructions-text p:last-child{margin-bottom:0}.grocery-stores{margin-top:20px;padding-top:20px;border-top:1px solid var(--border-light)}.grocery-stores h4{margin:0 0 16px;color:var(--text-dark);font-size:1.1rem;font-weight:600}.grocery-options{display:flex;flex-direction:column;gap:12px}.grocery-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:2px solid var(--border-light);border-radius:10px;background:#fff;color:var(--text-dark);text-decoration:none;font-weight:500;font-size:.95rem;transition:all .2s ease;cursor:pointer}.grocery-logo{width:24px;height:24px;object-fit:contain;flex-shrink:0}.grocery-button:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.grocery-button.delhaize{border-color:#e53e3e;color:#e53e3e}.grocery-button.delhaize:hover{background:#e53e3e;color:#fff}.grocery-button.albert-heijn{border-color:var(--info-color);color:var(--info-color)}.grocery-button.albert-heijn:hover{background:var(--info-color);color:#fff}.grocery-button.colruyt{border-color:var(--success-darker);color:var(--success-darker)}.grocery-button.colruyt:hover{background:var(--success-darker);color:#fff}@media (min-width: 768px){.grocery-options{flex-direction:row}}.delivery-content{padding:20px}.delivery-options{display:flex;flex-direction:column;gap:16px}.delivery-option{display:flex;align-items:center;gap:16px;padding:20px;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);transition:all .2s ease}.delivery-option:hover{box-shadow:0 4px 12px #0000001a;border-color:var(--accent-indigo)}.delivery-option img,.delivery-logo{width:60px;height:60px;border-radius:var(--radius-md);object-fit:contain;background:#fff;padding:4px;border:1px solid var(--border-light)}.delivery-info{flex:1}.delivery-info h4{margin:0 0 4px;color:var(--text-dark);font-weight:600}.delivery-info p{margin:0;color:var(--text-secondary);font-size:.9rem}.delivery-button{background:var(--accent-indigo);color:#fff;border:none;border-radius:var(--radius-md);padding:10px 20px;cursor:pointer;transition:all .2s ease;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.delivery-button:hover{background:var(--accent-indigo-dark);color:#fff;text-decoration:none}.restaurants-content{padding:20px}.restaurant-search{margin-bottom:24px}.search-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.restaurant-search p{color:var(--text-secondary);font-size:1rem;margin-bottom:8px}.view-all-restaurants-button{background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-md);padding:10px 16px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #667eea4d}.view-all-restaurants-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.search-based-on{font-size:.9rem!important;color:#9ca3af!important;font-style:italic}.restaurants-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.restaurants-loading p{margin-top:16px;color:var(--text-secondary)}.nearby-restaurants{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.restaurant-card:hover{box-shadow:0 4px 12px #0000001a;border-color:var(--accent-indigo)}.restaurant-card img{width:100%;height:180px;object-fit:cover}.restaurant-details h4{margin:0 0 12px;color:var(--text-dark);font-weight:600;font-size:1.1rem;word-wrap:break-word;overflow-wrap:break-word}.cuisine-distance{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;flex-wrap:wrap;gap:8px}.cuisine{background:var(--info-bg);color:#1d4ed8;padding:2px 8px;border-radius:var(--radius-lg);font-size:.8rem;font-weight:500;white-space:nowrap}.distance{display:flex;align-items:center;gap:4px;color:var(--text-secondary);font-size:.85rem}.address{color:var(--text-secondary);font-size:.85rem;margin:0;line-height:1.4;word-wrap:break-word;overflow-wrap:break-word;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.popular-dishes{background:var(--background-light);padding:8px 12px;border-radius:var(--radius-md);margin-bottom:12px;font-size:.85rem;overflow:hidden}.dishes-label{color:var(--text-secondary);font-weight:500}.restaurant-button{background:var(--accent-indigo);color:#fff;border:none;border-radius:6px;padding:8px 16px;cursor:pointer;transition:all .2s ease;font-size:.9rem;flex:1;min-width:0;white-space:nowrap}.restaurant-button:hover{background:var(--accent-indigo-dark)}.restaurant-link:hover{color:var(--accent-indigo);background:var(--background-off-white)}.no-restaurants{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.no-restaurants-icon{font-size:3rem;margin-bottom:16px}.no-restaurants h3{color:var(--text-dark);margin-bottom:8px}.no-restaurants p{color:var(--text-secondary);margin-bottom:20px}.retry-button:hover{background:var(--border-light)}.recipe-steps{margin-bottom:30px}.recipe-steps h3{font-size:1.3rem;font-weight:600;color:var(--text-dark);margin-bottom:20px}.recipe-step:last-child{border-bottom:none}.recipe-step:hover{background:var(--background-light)}.edit-button.admin-edit{background:var(--error-dark);color:#fff;border-color:var(--error-dark)}.edit-button.admin-edit:hover{background:var(--error-darker);border-color:var(--error-darker)}.admin-edit-warning{background:var(--warning-bg);border:1px solid var(--warning-color);color:#92400e;padding:12px;border-radius:var(--radius-md);margin-bottom:16px;display:flex;align-items:center;gap:8px;font-weight:500}.upload-area{border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:48px 24px;text-align:center;cursor:pointer;transition:all .3s ease;background:var(--background-light)}.upload-area:hover{border-color:var(--primary-color);background:#667eea0d}.upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-light)}.upload-placeholder svg{color:var(--text-light)}.upload-placeholder p{margin:0;font-weight:500}.upload-hint{font-size:14px!important;color:var(--text-lighter)!important}.image-preview{position:relative;border-radius:var(--radius-lg);overflow:hidden;max-width:400px;margin:0 auto}.image-preview img{width:100%;height:auto;display:block}.remove-image:hover{background:#000000e6}.likes-count.clickable{cursor:pointer;transition:all .2s ease;border-radius:4px;padding:2px 4px;margin:-2px -4px}.likes-count.clickable:hover{background:var(--gray-alpha-5);color:var(--primary-color)}.likes-modal{max-width:400px;width:90%;max-height:80vh}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-height:100%}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 20px 16px;border-bottom:1px solid var(--border-color)}.modal-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text-dark)}.modal-body{flex:1;overflow-y:auto;padding:20px}.likes-list{display:flex;flex-direction:column;gap:12px}.like-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.like-item:hover{background:var(--gray-alpha-5)}.like-item .user-info{flex:1}.like-item .username{font-weight:600;color:var(--text-dark);font-size:14px}.like-item .full-name{color:var(--text-gray);font-size:13px}.no-likes{text-align:center;color:var(--text-gray);padding:40px 20px}@media (max-width: 768px){.likes-modal{max-width:100%;width:100%;height:100%;max-height:100%;border-radius:0}.modal-overlay{padding:0}}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#262626;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--primary-gradient: linear-gradient(135deg, #32adbd 0%, #32bd9f 100%);--secondary-gradient: linear-gradient(135deg, #32adbd 0%, #32bd9f 50%, #32bd9f 100%);--success-gradient: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);--background-gradient: linear-gradient(135deg, #fdfbfb 0%, #ebedee 100%);--analysis-gradient: linear-gradient(135deg, #f8f9ff 0%, #fff5f5 100%);--success-bg-gradient: linear-gradient(135deg, #ecfdf5 0%, #f0fdf4 100%);--primary-color: #32adbd;--primary-dark: #2a94a3;--primary-light: #4bc5d4;--accent-blue: #3897f0;--accent-indigo: #4f46e5;--accent-indigo-dark: #4338ca;--accent-teal: #48cab2;--success-color: #10b981;--success-dark: #059669;--success-darker: #38a169;--error-color: #ef4444;--error-text: #ed4956;--error-dark: #dc2626;--error-darker: #b91c1c;--error-bg: #fee2e2;--error-border: #fecaca;--warning-color: #f59e0b;--warning-bg: #fef3c7;--info-color: #3182ce;--info-bg: #eff6ff;--like-color: #ff6b6b;--text-primary: #262626;--text-secondary: #6b7280;--text-tertiary: #8e8e8e;--text-muted: #9ca3af;--text-dark: #1f2937;--text-gray: #374151;--text-light-gray: #666;--text-very-light: #c7c7c7;--border-light: #e5e7eb;--border-medium: #d1d5db;--border-gray: #e1e8ed;--border-light-gray: #efefef;--border-very-light: #f3f4f6;--border-lighter: #dbdbdb;--border-dark: #333;--background-light: #f9fafb;--background-white: #ffffff;--background-gray: #f8f9fa;--background-off-white: #f3f4f6;--background-lighter: #f0f2f5;--background-pale: #f0f0f0;--background-error: #ffeaea;--background-error-light: #fef2f2;--background-success-light: #ecfdf5;--overlay-dark: rgba(0, 0, 0, .5);--overlay-darker: rgba(0, 0, 0, .6);--overlay-darkest: rgba(0, 0, 0, .7);--overlay-light: rgba(255, 255, 255, .2);--primary-alpha-10: rgba(50, 173, 189, .1);--primary-alpha-20: rgba(50, 173, 189, .2);--indigo-alpha-5: rgba(79, 70, 229, .05);--gray-alpha-5: rgba(107, 114, 128, .05);--white-alpha-20: rgba(255, 255, 255, .2);--shadow-xs: 0 1px 4px rgba(0, 0, 0, .05);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 25px rgba(0, 0, 0, .12);--shadow-xl: 0 8px 30px rgba(0, 0, 0, .12);--shadow-2xl: 0 20px 60px rgba(0, 0, 0, .15);--shadow-3xl: 0 25px 80px rgba(0, 0, 0, .3);--shadow-primary: 0 4px 15px rgba(50, 173, 189, .3);--shadow-primary-hover: 0 8px 25px rgba(50, 173, 189, .4);--shadow-success: 0 4px 12px rgba(16, 185, 129, .1);--shadow-dropdown: 0 8px 24px rgba(0, 0, 0, .15);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 50%}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0;overflow-x:hidden;max-width:100vw}body{margin:0;min-width:320px;font-family:inherit;background:var(--background-gradient);background-attachment:fixed;color:var(--text-primary);line-height:1.6;-webkit-overflow-scrolling:touch;overflow-x:hidden;overflow-y:auto}html{-webkit-text-size-adjust:100%;overflow-y:auto}h1,h2,h3,h4,h5,h6{line-height:1.2;font-weight:700;color:var(--text-primary);margin-bottom:.5em}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}p{line-height:1.6;color:var(--text-secondary)}a{color:#667eea;text-decoration:none;font-weight:500;transition:color .2s ease}a:hover{color:#764ba2;text-decoration:underline}button{border-radius:var(--radius-md);border:1px solid transparent;padding:.75em 1.5em;font-size:.9rem;font-weight:600;font-family:inherit;background-color:var(--background-white);color:var(--text-primary);cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm)}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}button:focus,button:focus-visible{outline-offset:2px}button:disabled{opacity:.6;cursor:not-allowed;transform:none}input,textarea,select{font-family:inherit;font-size:.9rem;border:2px solid var(--border-light);border-radius:var(--radius-md);padding:.75rem;transition:all .2s ease;background:var(--background-white);color:var(--text-primary)}input:focus,textarea:focus,select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--background-light);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:var(--radius-sm);transition:background .2s ease}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:#667eea33;color:var(--text-primary)}.gradient-text{background:var(--primary-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.container{max-width:1200px;margin:0 auto;padding:2rem}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-md{gap:1rem}.gap-lg{gap:1.5rem}.card{background:var(--background-white);border-radius:var(--radius-xl);padding:1.5rem;box-shadow:var(--shadow-md);border:1px solid var(--border-light);transition:all .3s ease}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.card-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.grid{display:grid;gap:1.5rem}.grid-2{grid-template-columns:repeat(2,1fr)}.btn{border-radius:var(--radius-md);border:1px solid transparent;padding:.75rem 1.5rem;font-size:.9rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem}.btn-primary{background:var(--primary-gradient);color:var(--background-white);box-shadow:var(--shadow-primary)}.btn-primary:hover{transform:translateY(-1px);filter:brightness(1.05)}.btn-secondary{background:var(--secondary-gradient);color:var(--background-white);box-shadow:0 4px 15px #ff6b6b4d}.btn-outline{background:transparent;border:2px solid var(--border-light);color:var(--text-secondary)}.btn-outline:hover{border-color:#667eea;color:#667eea}.form-input{width:100%;padding:.75rem;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:.9rem;transition:all .2s ease;background:var(--background-white);box-sizing:border-box}.form-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--text-primary)}.avatar{width:4rem;height:4rem;border-radius:var(--radius-full);overflow:hidden;flex-shrink:0;background:var(--primary-gradient);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md)}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-sm{width:2.5rem;height:2.5rem}.avatar-lg{width:5rem;height:5rem}.avatar-edit-container{position:relative;width:5rem;height:5rem;cursor:pointer}.avatar-edit-container .avatar{width:100%;height:100%}.avatar-edit-overlay{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;border-radius:50%;background-color:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease;pointer-events:none}.avatar-edit-container:hover .avatar-edit-overlay{opacity:1}.danger-zone-spoiler{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border-light)}.danger-zone-summary{cursor:pointer;font-weight:600;color:var(--danger);padding:.5rem 0;list-style:none;display:flex;align-items:center;gap:.5rem}.danger-zone-summary::-webkit-details-marker{display:none}.danger-zone-summary:before{content:"▶";font-size:.75rem;transition:transform .2s ease}.danger-zone-spoiler[open] .danger-zone-summary:before{transform:rotate(90deg)}.danger-zone-content{padding:1rem 0 0 1.25rem}.account-settings-spoiler{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border-light)}.account-settings-summary{cursor:pointer;font-weight:600;color:var(--text-secondary);list-style:none;display:flex;align-items:center;gap:.5rem}.account-settings-summary::-webkit-details-marker{display:none}.account-settings-summary:before{content:"▶";font-size:.75rem;transition:transform .2s ease}.account-settings-spoiler[open] .account-settings-summary:before{transform:rotate(90deg)}.account-settings-content{padding:1rem 0 0 1.25rem}.btn-sm{padding:.4rem .75rem;font-size:.8rem}.tag{padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600;display:inline-block}.shadow-sm{box-shadow:var(--shadow-sm)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.pt-4{padding-top:1rem}.mb-4{margin-bottom:1rem}.mt-2{margin-top:.5rem}.font-semibold{font-weight:600}.text-muted{color:var(--text-muted)}.hidden{display:none}@media (max-width: 768px){.container{padding:1rem .75rem;overflow-x:hidden}.card{margin:0 .75rem;padding:1rem;max-height:none;overflow:visible}.grid-auto-fit,.grid-2,.grid-3{grid-template-columns:1fr}.page-title{font-size:2rem}.page-header{margin-bottom:1.5rem;padding:0 .75rem}.form-input,input[type=text],input[type=email],input[type=file]{font-size:16px!important;-webkit-appearance:none;-moz-appearance:none;appearance:none}}@media (max-width: 430px){.container{padding:.5rem}.card{margin:0 .5rem;border-radius:12px}.page-header{padding:0 .5rem;margin-bottom:1rem}.card-header{flex-direction:column;align-items:flex-start;gap:.75rem}.form-group{margin-bottom:1rem}}@media print{body{background:#fff;color:#000}.no-print{display:none!important}}@media (prefers-contrast: high){:root{--text-primary: #000000;--text-secondary: #333333;--border-light: #666666;--border-medium: #333333}button{border:2px solid var(--text-primary)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.leaflet-container{isolation:isolate}.leaflet-pane,.leaflet-control-container{z-index:auto!important}.leaflet-popup{z-index:700!important}.settings-page{max-width:600px;margin:0 auto;padding:16px}.settings-header{display:flex;align-items:center;gap:12px;margin-bottom:24px}.settings-header h1{display:flex;align-items:center;gap:8px;font-size:24px;font-weight:700;margin:0}.settings-content{display:flex;flex-direction:column;gap:24px}.settings-section h2{font-size:18px;font-weight:600;margin-bottom:8px}.settings-section-description{color:var(--text-secondary);font-size:14px;margin-bottom:16px}.settings-card{background:#fff;border:1px solid var(--border-light);border-radius:12px;overflow:hidden}.settings-card-header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--border-light)}.settings-card-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.settings-card-icon.strava{background:#fc4c02;color:#fff}.settings-card-info{flex:1}.settings-card-info h3{font-size:16px;font-weight:600;margin:0 0 4px}.settings-card-info p{font-size:14px;color:var(--text-secondary);margin:0}.settings-card-status{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:500}.status-connected{color:#22c55e;display:flex;align-items:center;gap:4px}.status-disconnected{color:var(--text-tertiary);display:flex;align-items:center;gap:4px}.settings-card-actions{display:flex;align-items:center;gap:12px;padding:16px}.settings-card-details{padding:0 16px 16px;color:var(--text-tertiary);font-size:12px}.btn-strava{background:#fc4c02!important;color:#fff!important}.btn-strava:hover{background:#e04502!important}.btn-danger{color:#ef4444!important;border-color:#ef4444!important}.btn-danger:hover{background:#fef2f2!important}.btn-link{display:flex;align-items:center;gap:4px;color:var(--text-secondary);text-decoration:none;font-size:13px}.btn-link:hover{color:var(--text-primary)}.settings-section h2{display:flex;align-items:center;gap:8px}.notification-preference{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border-bottom:1px solid var(--border-light)}.notification-preference:last-of-type{border-bottom:none}.preference-info{flex:1}.preference-info h3{font-size:16px;font-weight:600;margin:0 0 4px}.preference-info p{font-size:14px;color:var(--text-secondary);margin:0}.toggle-switch{position:relative;display:inline-block;width:48px;height:28px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.2s;border-radius:28px}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;background-color:#fff;transition:.2s;border-radius:50%}.toggle-switch input:checked+.toggle-slider{background-color:var(--primary-color)}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 0 2px #ff6b3533}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.toggle-switch input:disabled+.toggle-slider{opacity:.5;cursor:not-allowed}.settings-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 16px;gap:12px}.settings-loading p{color:var(--text-secondary);font-size:14px;margin:0}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.strava-picker-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.strava-picker-modal{background:#fff;border-radius:16px;width:100%;max-width:480px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.strava-picker-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-light)}.strava-picker-title{display:flex;align-items:center;gap:10px}.strava-picker-title h2{font-size:18px;font-weight:600;margin:0}.strava-picker-actions{display:flex;align-items:center;gap:8px}.strava-picker-content{flex:1;overflow-y:auto}.strava-picker-loading,.strava-picker-error,.strava-picker-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--text-secondary)}.strava-picker-loading p,.strava-picker-error p,.strava-picker-empty p{margin:16px 0}.strava-picker-error h3,.strava-picker-empty h3{margin:16px 0 8px;color:var(--text-primary)}.strava-activities-list{padding:8px}.strava-activity-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:12px;cursor:pointer;transition:background .2s ease}.strava-activity-item:hover{background:var(--background-light)}.strava-activity-item:active{background:var(--background-medium)}.strava-activity-icon{width:48px;height:48px;background:linear-gradient(135deg,#fc4c02,#ff6a3d);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px}.strava-activity-info{flex:1;min-width:0}.strava-activity-name{font-weight:600;font-size:15px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.strava-activity-meta{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);margin-bottom:4px}.strava-activity-type{background:#fff3ef;color:#fc4c02;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.strava-activity-stats{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--text-secondary)}.strava-activity-stats span{display:flex;align-items:center;gap:4px}.strava-activity-kudos{font-size:13px;color:var(--text-secondary);white-space:nowrap}.strava-picker-load-more{padding:16px;text-align:center;border-top:1px solid var(--border-light)}.shopping-lists-page{max-width:1000px;margin:0 auto;padding:24px 16px}.shopping-lists-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.shopping-lists-header h1{display:flex;align-items:center;gap:12px;font-size:24px;font-weight:600;margin:0}.shopping-lists-loading,.shopping-list-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;gap:16px}.shopping-lists-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--text-secondary)}.shopping-lists-empty h3{margin:16px 0 8px;color:var(--text-primary)}.shopping-lists-empty p{margin:0 0 24px}.shopping-lists-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.shopping-list-card{background:#fff;border:1px solid var(--border-light);border-radius:12px;padding:16px;cursor:pointer;transition:transform .2s,box-shadow .2s}.shopping-list-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.shopping-list-card.shared{border-left:3px solid var(--primary-color)}.list-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.list-card-header h3{margin:0;font-size:18px;font-weight:600}.list-name-input{font-size:18px;font-weight:600;border:none;border-bottom:2px solid var(--primary-color);padding:4px 0;outline:none;width:100%}.list-menu-container{position:relative}.list-menu{position:absolute;top:100%;right:0;background:#fff;border:1px solid var(--border-light);border-radius:8px;box-shadow:0 4px 12px #0000001a;min-width:140px;z-index:10}.list-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:10px 16px;border:none;background:none;text-align:left;cursor:pointer;font-size:14px}.list-menu button:hover{background:var(--background-light)}.list-menu button.danger{color:var(--error-color)}.list-card-body{margin-bottom:12px}.list-progress{height:6px;background:var(--background-light);border-radius:3px;overflow:hidden;margin-bottom:8px}.progress-bar{height:100%;background:var(--primary-gradient);border-radius:3px;transition:width .3s}.list-count{font-size:14px;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.complete-icon{color:var(--success-color)}.list-card-footer{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--text-tertiary)}.shared-badge{display:flex;align-items:center;gap:4px;color:var(--primary-color)}.list-members{display:flex;align-items:center;gap:4px}.shopping-list-page{max-width:600px;margin:0 auto;padding:24px 16px}.shopping-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:16px}.list-title-section h1{font-size:20px;margin:0}.shared-by{font-size:12px;color:var(--text-tertiary)}.list-actions{display:flex;gap:8px}.list-members-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--background-light);border-radius:8px;margin-bottom:16px;font-size:14px;color:var(--text-secondary)}.member-avatars{display:flex;margin-left:auto}.member-avatar{width:28px;height:28px;border-radius:50%;background:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;margin-left:-8px;border:2px solid white}.member-avatar:first-child{margin-left:0}.member-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.member-avatar.more{background:var(--text-secondary)}.add-item-form{display:flex;gap:8px;margin-bottom:24px}.item-name-input{flex:1;padding:12px 16px;border:1px solid var(--border-light);border-radius:8px;font-size:16px}.item-quantity-input{width:80px;padding:12px 16px;border:1px solid var(--border-light);border-radius:8px;font-size:16px}.shopping-items-list{background:#fff;border:1px solid var(--border-light);border-radius:12px;overflow:hidden}.empty-list{padding:48px 24px;text-align:center;color:var(--text-secondary)}.shopping-item{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--border-light);cursor:pointer;transition:background .2s}.shopping-item:last-child{border-bottom:none}.shopping-item:hover{background:var(--background-light)}.shopping-item.checked{opacity:.6}.shopping-item.checked .item-name{text-decoration:line-through}.item-checkbox{width:24px;height:24px;border:2px solid var(--border-medium);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}.item-checkbox.disabled{opacity:.5;cursor:not-allowed}.item-checkbox.checked{background:var(--success-color);border-color:var(--success-color);color:#fff}.item-details{flex:1;display:flex;align-items:center;gap:8px}.item-name{font-size:16px}.item-quantity{font-size:14px;color:var(--text-secondary);padding:2px 8px;background:var(--background-light);border-radius:4px}.delete-item{opacity:0;transition:opacity .2s}.shopping-item:hover .delete-item{opacity:1}.checked-section{border-top:1px solid var(--border-light)}.checked-header{display:flex;align-items:center;gap:8px;padding:12px 16px;font-size:14px;color:var(--text-secondary);background:var(--background-light)}.share-modal{width:90%;max-width:400px;max-height:80vh}.share-modal .modal-header h3{display:flex;align-items:center;gap:8px}.search-input-container{position:relative;margin-bottom:16px}.search-input-container .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-tertiary)}.search-input{padding-left:40px!important}.search-results{margin-bottom:16px}.searching,.loading-users,.no-results{padding:16px;text-align:center;color:var(--text-secondary);font-size:14px}.search-result-item,.user-item{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:8px;cursor:pointer;transition:background .2s}.search-result-item:hover,.user-item:hover{background:var(--background-light)}.user-info{display:flex;align-items:center;gap:12px}.user-info .avatar{width:40px;height:40px;border-radius:50%;background:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600}.user-info .avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.user-details{display:flex;flex-direction:column}.user-details .username{font-weight:500}.user-details .full-name{font-size:13px;color:var(--text-secondary)}.current-members h4{font-size:14px;font-weight:500;color:var(--text-secondary);margin:0 0 12px}.member-item{display:flex;align-items:center;justify-content:space-between;padding:12px;background:var(--background-light);border-radius:8px;margin-bottom:8px}.member-actions{display:flex;align-items:center;gap:8px}.role-select{padding:6px 10px;border:1px solid var(--border-light);border-radius:6px;font-size:13px;background:#fff}.empty-state{display:flex;flex-direction:column;align-items:center;padding:32px;text-align:center;color:var(--text-secondary)}.empty-state p{margin:12px 0 0}.empty-state .hint{font-size:13px;color:var(--text-tertiary)}.add-to-list-modal{width:90%;max-width:450px;max-height:80vh}.ingredients-selection,.list-selection{margin-bottom:20px}.selection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.selection-header h4{margin:0;font-size:14px;font-weight:600}.selection-actions{display:flex;align-items:center;gap:8px;font-size:13px}.link-button{background:none;border:none;color:var(--primary-color);cursor:pointer;font-size:13px;display:flex;align-items:center;gap:4px}.link-button:hover{text-decoration:underline}.ingredients-checklist{max-height:200px;overflow-y:auto;border:1px solid var(--border-light);border-radius:8px}.ingredient-checkbox{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--border-light)}.ingredient-checkbox:last-child{border-bottom:none}.ingredient-checkbox:hover{background:var(--background-light)}.ingredient-checkbox input{display:none}.checkbox-custom{width:20px;height:20px;border:2px solid var(--border-medium);border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}.ingredient-checkbox input:checked+.checkbox-custom{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.create-list-inline{display:flex;gap:8px;margin-bottom:12px}.no-lists{padding:24px;text-align:center;color:var(--text-secondary)}.lists-radio-group{max-height:180px;overflow-y:auto;border:1px solid var(--border-light);border-radius:8px}.list-radio{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--border-light)}.list-radio:last-child{border-bottom:none}.list-radio:hover{background:var(--background-light)}.list-radio input{display:none}.radio-custom{width:20px;height:20px;border:2px solid var(--border-medium);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative}.list-radio input:checked+.radio-custom:after{content:"";width:10px;height:10px;background:var(--primary-color);border-radius:50%}.user-tag-picker{width:90%;max-width:400px;max-height:80vh}.selected-users{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.selected-user-chip,.tagged-user-chip{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--primary-alpha-10);color:var(--primary-color);border-radius:20px;font-size:13px}.chip-avatar{width:20px;height:20px;border-radius:50%;object-fit:cover}.chip-avatar-placeholder{width:20px;height:20px;border-radius:50%;background:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600}.chip-remove{background:none;border:none;cursor:pointer;padding:2px;display:flex;color:var(--primary-color);opacity:.7}.chip-remove:hover{opacity:1}.users-list{max-height:300px;overflow-y:auto}.list-header{font-size:12px;font-weight:500;color:var(--text-tertiary);text-transform:uppercase;padding:8px 12px;background:var(--background-light)}.user-item.selected{background:var(--primary-alpha-10)}.select-indicator{width:24px;height:24px;border:2px solid var(--border-medium);border-radius:50%;display:flex;align-items:center;justify-content:center}.select-indicator.selected{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.tag-people-section{margin-top:16px}.tag-people-button{display:flex;align-items:center;gap:8px;width:100%;padding:12px 16px;background:var(--background-light);border:1px solid var(--border-light);border-radius:8px;font-size:14px;color:var(--text-secondary);cursor:pointer;transition:all .2s}.tag-people-button:hover{background:var(--background-pale);border-color:var(--border-medium)}.tagged-users-preview{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.post-mentions{padding:8px 16px 0;font-size:14px;color:var(--text-secondary)}.mentions-label{font-style:italic}.mention-link{color:var(--primary-color);cursor:pointer;font-weight:500}.mention-link:hover{text-decoration:underline}.caption-mention{color:var(--primary-color);cursor:pointer;font-weight:500}.caption-mention:hover{text-decoration:underline}.mention-input-container{position:relative;width:100%}.mention-input-textarea{width:100%;font-family:inherit;resize:none}.mention-suggestions{background:var(--background-white);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-dropdown);max-height:240px;overflow-y:auto;min-width:280px;max-width:320px}.mention-suggestion-loading{padding:12px 16px;color:var(--text-tertiary);font-size:14px;text-align:center}.mention-suggestion-item{display:flex;align-items:center;gap:12px;padding:10px 16px;cursor:pointer;transition:background-color .15s ease}.mention-suggestion-item:hover,.mention-suggestion-item.selected{background:var(--background-light)}.mention-suggestion-avatar{width:36px;height:36px;border-radius:50%;overflow:hidden;background:var(--primary-alpha-10);display:flex;align-items:center;justify-content:center;flex-shrink:0}.mention-suggestion-avatar img{width:100%;height:100%;object-fit:cover}.mention-suggestion-avatar span{color:var(--primary-color);font-weight:600;font-size:14px}.mention-suggestion-info{display:flex;flex-direction:column;gap:2px;min-width:0}.mention-suggestion-username{font-weight:600;font-size:14px;color:var(--text-primary)}.mention-suggestion-name{font-size:13px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meal-planner-page{max-width:1200px;margin:0 auto;padding:24px 16px}.meal-planner-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.meal-planner-header .header-left{display:flex;align-items:center;gap:16px}.meal-planner-header h1{display:flex;align-items:center;gap:12px;font-size:24px;font-weight:600;margin:0}.plan-selector{position:relative}.plan-select{padding:8px 12px;border:1px solid var(--border-light);border-radius:8px;font-size:14px;background:#fff}.header-actions{display:flex;gap:8px}.meal-planner-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;gap:16px}.week-navigation{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:24px}.nav-btn{padding:8px;border:1px solid var(--border-light);border-radius:8px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.nav-btn:hover{background:var(--background-light);border-color:var(--border-medium)}.week-display{display:flex;align-items:center;gap:16px}.week-range{font-size:18px;font-weight:600;min-width:180px;text-align:center}.today-btn{padding:6px 12px;font-size:13px;border:1px solid var(--primary-color);border-radius:6px;background:#fff;color:var(--primary-color);cursor:pointer}.today-btn:hover{background:var(--primary-alpha-10)}.meal-planner-week{background:#fff;border:1px solid var(--border-light);border-radius:12px;overflow:hidden}.week-header{display:grid;grid-template-columns:80px repeat(7,1fr);background:var(--background-light);border-bottom:1px solid var(--border-light)}.meal-type-label{padding:12px;font-size:13px;font-weight:500;color:var(--text-secondary);display:flex;align-items:center}.day-header{padding:12px 8px;text-align:center;border-left:1px solid var(--border-light)}.day-header.today{background:var(--primary-alpha-10)}.day-name{display:block;font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase}.day-date{display:block;font-size:18px;font-weight:600;margin-top:4px}.day-header.today .day-date{color:var(--primary-color)}.meal-row{display:grid;grid-template-columns:80px repeat(7,1fr);border-bottom:1px solid var(--border-light)}.meal-row:last-child{border-bottom:none}.meal-cell{padding:8px;border-left:1px solid var(--border-light);min-height:80px;display:flex;flex-direction:column;justify-content:center;align-items:center}.meal-cell.today{background:var(--primary-alpha-10)}.meal-entries{display:flex;flex-direction:column;gap:4px;width:100%}.meal-entry{display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--background-light);border-radius:6px;cursor:pointer;transition:background .2s;position:relative}.meal-entry:hover{background:var(--border-light)}.entry-image{width:28px;height:28px;border-radius:4px;object-fit:cover}.entry-name{font-size:12px;font-weight:500;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-servings{font-size:11px;color:var(--text-tertiary)}.delete-entry-btn{position:absolute;top:-4px;right:-4px;width:20px;height:20px;border-radius:50%;background:var(--error-color);color:#fff;border:none;cursor:pointer;display:none;align-items:center;justify-content:center}.meal-entry:hover .delete-entry-btn{display:flex}.add-meal-btn{width:32px;height:32px;border-radius:50%;border:2px dashed var(--border-medium);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);transition:all .2s}.add-meal-btn:hover{border-color:var(--primary-color);color:var(--primary-color);background:var(--primary-alpha-10)}.add-meal-modal{width:90%;max-width:450px;max-height:80vh}.add-meal-modal .modal-header{flex-direction:column;align-items:flex-start}.modal-subtitle{font-size:13px;color:var(--text-secondary);font-weight:400}.mode-selector{display:flex;gap:8px;margin-bottom:16px}.mode-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border:1px solid var(--border-light);border-radius:8px;background:#fff;cursor:pointer;font-size:14px;transition:all .2s}.mode-btn:hover{border-color:var(--border-medium)}.mode-btn.active{border-color:var(--primary-color);background:var(--primary-alpha-10);color:var(--primary-color)}.selected-dish{display:flex;align-items:center;gap:12px;padding:12px;background:var(--background-light);border-radius:8px;margin-bottom:16px}.selected-dish img{width:48px;height:48px;border-radius:8px;object-fit:cover}.selected-dish span{flex:1;font-weight:500}.dishes-list{max-height:200px;overflow-y:auto;border:1px solid var(--border-light);border-radius:8px;margin-bottom:16px}.loading-dishes,.no-dishes{padding:24px;text-align:center;color:var(--text-secondary);font-size:14px}.dish-item{display:flex;align-items:center;gap:12px;padding:12px;cursor:pointer;border-bottom:1px solid var(--border-light);transition:background .2s}.dish-item:last-child{border-bottom:none}.dish-item:hover{background:var(--background-light)}.dish-item img{width:40px;height:40px;border-radius:6px;object-fit:cover}.dish-item span{flex:1;font-weight:500}.form-group{margin-bottom:16px}.servings-group{display:flex;align-items:center;justify-content:space-between}.servings-input{display:flex;align-items:center;gap:12px}.servings-btn{width:32px;height:32px;border-radius:50%;border:1px solid var(--border-medium);background:#fff;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;transition:all .2s}.servings-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.servings-input>span{font-size:18px;font-weight:600;min-width:32px;text-align:center}.ingredients-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.ingredients-header h3{margin:0}@media (max-width: 768px){.meal-planner-week{overflow-x:auto}.week-header,.meal-row{min-width:800px}.header-actions .btn-text{display:none}.shopping-lists-grid{grid-template-columns:1fr}}.dietary-warning-container{position:relative;display:inline-block}.dietary-warning-badge{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:20px;border:none;cursor:pointer;font-size:12px;font-weight:600;transition:all .2s ease}.dietary-warning-badge.small{padding:2px 6px}.dietary-warning-badge.large{padding:6px 12px;font-size:14px}.dietary-warning-badge.strict{background:var(--error-bg);color:var(--error-color)}.dietary-warning-badge.avoid{background:var(--warning-bg);color:var(--warning-color)}.dietary-warning-tooltip{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:8px;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;min-width:280px;z-index:100;overflow:hidden}.dietary-warning-tooltip-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--background-light);border-bottom:1px solid var(--border-light)}.dietary-warning-tooltip-header h4{margin:0;font-size:14px;font-weight:600}.dietary-warning-tooltip-header button{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-secondary)}.dietary-warning-list{list-style:none;padding:0;margin:0;max-height:200px;overflow-y:auto}.warning-item{padding:12px 16px;border-bottom:1px solid var(--border-light);display:flex;flex-direction:column;gap:4px}.warning-item:last-child{border-bottom:none}.warning-item.strict{background:var(--error-bg)}.warning-item .ingredient-name{font-weight:600;color:var(--text-primary)}.warning-item .conflict-reason{font-size:12px;color:var(--text-secondary)}.warning-item .conflict-source{font-size:11px;color:var(--text-tertiary)}.dietary-preferences-page,.diets-list-page,.diet-page{padding:16px;max-width:800px;margin:0 auto}.dietary-preferences-header,.diets-list-header,.diet-page-header{display:flex;align-items:center;gap:12px;margin-bottom:24px}.dietary-preferences-header h1,.diets-list-header h1,.diet-page-header h1{margin:0;font-size:24px}.dietary-preferences-loading,.diets-list-loading,.diet-page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:48px}.dietary-section{margin-bottom:32px}.dietary-section h2{display:flex;align-items:center;gap:8px;font-size:18px;margin-bottom:8px}.section-description{color:var(--text-secondary);font-size:14px;margin-bottom:16px}.diets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.diet-card{display:flex;align-items:stretch;border:2px solid var(--border-light);border-radius:12px;background:#fff;transition:all .2s ease;overflow:hidden}.diet-card:hover{border-color:var(--primary-color)}.diet-card.selected{border-color:var(--primary-color);background:var(--primary-alpha-10)}.diet-card-main{display:flex;align-items:center;gap:12px;padding:16px;flex:1;border:none;background:transparent;cursor:pointer;text-align:left}.diet-checkbox{width:22px;height:22px;border:2px solid var(--border-medium);border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.diet-checkbox.checked{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.diet-info-btn{display:flex;align-items:center;justify-content:center;padding:0 12px;border:none;border-left:1px solid var(--border-light);background:var(--background-light);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.diet-info-btn:hover{background:var(--primary-alpha-10);color:var(--primary-color)}.diet-icon{font-size:32px;flex-shrink:0}.diet-info{flex:1;min-width:0}.diet-name{font-weight:600;display:block;margin-bottom:4px}.diet-description{font-size:12px;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.diet-check{width:24px;height:24px;border-radius:50%;background:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ingredient-search-container{position:relative;margin-bottom:16px}.search-input-wrapper{display:flex;align-items:center;gap:8px;padding:12px 16px;border:1px solid var(--border-light);border-radius:8px;background:#fff}.search-input-wrapper input{flex:1;border:none;outline:none;font-size:14px}.search-input-wrapper .clear-search{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-tertiary)}.search-results-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--border-light);border-radius:8px;margin-top:4px;box-shadow:0 4px 12px #0000001a;max-height:300px;overflow-y:auto;z-index:50}.search-result-item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:12px 16px;border:none;background:none;cursor:pointer;text-align:left;transition:background .2s ease}.search-result-item:hover{background:var(--background-light)}.search-loading{display:flex;align-items:center;gap:8px;padding:16px;color:var(--text-secondary)}.custom-exclusions-list{display:flex;flex-direction:column;gap:8px}.exclusion-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;background:var(--background-light);border-radius:8px}.exclusion-info{display:flex;align-items:center;gap:12px;flex:1}.exclusion-name{font-weight:500}.severity-select{padding:4px 8px;border:1px solid var(--border-light);border-radius:4px;font-size:12px}.remove-exclusion{background:none;border:none;padding:4px;cursor:pointer;color:var(--error-color)}.no-exclusions{color:var(--text-secondary);font-style:italic;padding:16px 0}.excluded-ingredients-summary{display:flex;flex-wrap:wrap;gap:8px}.excluded-ingredient-tag{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:20px;font-size:13px}.excluded-ingredient-tag.strict{background:var(--error-bg);color:var(--error-darker)}.excluded-ingredient-tag.avoid{background:var(--warning-bg);color:#92400e}.excluded-ingredient-tag .ingredient-name{font-weight:500}.excluded-ingredient-tag .ingredient-source{font-size:11px;opacity:.7}.diets-list{display:flex;flex-direction:column;gap:12px}.diet-list-item{display:flex;align-items:center;gap:16px;padding:16px;border:1px solid var(--border-light);border-radius:12px;cursor:pointer;transition:all .2s ease}.diet-list-item:hover{border-color:var(--primary-color);box-shadow:0 2px 8px #0000000d}.diet-list-item.active{border-color:var(--primary-color);background:var(--primary-alpha-10)}.diet-icon-large{font-size:40px}.diet-details{flex:1}.diet-details h3{margin:0 0 4px;font-size:16px}.diet-details p{margin:0;font-size:13px;color:var(--text-secondary)}.diet-active-badge{display:flex;align-items:center;gap:4px;padding:6px 12px;background:var(--success-color);color:#fff;border-radius:20px;font-size:12px;font-weight:600}.diets-list-actions{margin-top:24px}.diet-hero{text-align:center;padding:24px;background:var(--background-light);border-radius:16px;margin-bottom:24px}.diet-hero-icon{font-size:64px;margin-bottom:16px}.diet-hero h2{margin:0 0 8px}.diet-hero .diet-description{font-size:14px;color:var(--text-secondary);max-width:500px;margin:0 auto 16px}.diet-follow-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border:2px solid var(--primary-color);border-radius:24px;background:#fff;color:var(--primary-color);font-weight:600;cursor:pointer;transition:all .2s ease}.diet-follow-btn:hover{background:var(--primary-alpha-10)}.diet-follow-btn.following{background:var(--primary-color);color:#fff}.diet-excluded-section h3{display:flex;align-items:center;gap:8px;margin-bottom:8px}.excluded-ingredients-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.excluded-ingredient-card{padding:12px 16px;background:var(--background-light);border-radius:8px;cursor:pointer;transition:all .2s ease}.excluded-ingredient-card:hover{background:var(--primary-alpha-10)}.excluded-ingredient-card .ingredient-name{font-weight:600;display:block;margin-bottom:4px}.excluded-ingredient-card .exclusion-reason{font-size:12px;color:var(--text-secondary)}.no-ingredients{color:var(--text-secondary);font-style:italic}.menu-header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.add-menu-item-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--primary-color);border-radius:8px;background:#fff;color:var(--primary-color);font-weight:500;cursor:pointer;transition:all .2s ease}.add-menu-item-btn:hover{background:var(--primary-alpha-10)}.menu-item-card{display:flex;flex-direction:column;border:1px solid var(--border-light);border-radius:12px;overflow:hidden;background:#fff;cursor:pointer;transition:all .2s ease}.menu-item-card:hover{box-shadow:0 4px 12px #0000001a}.menu-item-card.unavailable{opacity:.6}.menu-item-image-container{position:relative;width:100%;height:140px}.menu-item-image{width:100%;height:100%;object-fit:cover}.unavailable-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600}.menu-item-dietary-badge{position:absolute;top:8px;right:8px}.menu-item-content{padding:12px;display:flex;flex-direction:column;gap:8px}.menu-item-content .menu-item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.menu-item-name{margin:0;font-size:14px;font-weight:600}.menu-item-price{font-weight:700;color:var(--primary-color);white-space:nowrap}.menu-item-content .menu-item-description{font-size:12px;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.menu-item-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto}.menu-item-rating{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary);cursor:pointer}.menu-item-rating:hover{color:var(--primary-color)}.menu-item-category{font-size:11px;padding:2px 8px;background:var(--background-light);border-radius:4px;color:var(--text-secondary)}.no-menu-items{grid-column:1 / -1;text-align:center;padding:24px;color:var(--text-secondary)}.rate-dish-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.rate-dish-modal{background:#fff;border-radius:16px;width:100%;max-width:400px;max-height:90vh;overflow-y:auto}.rate-dish-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-light)}.rate-dish-modal-header h2{margin:0;font-size:18px}.rate-dish-modal-header .close-btn{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-secondary)}.rate-dish-modal-content{padding:20px}.dish-info{text-align:center;margin-bottom:24px}.dish-info h3{margin:0 0 4px;font-size:16px}.dish-info .restaurant-name{margin:0;color:var(--text-secondary);font-size:14px}.star-rating{text-align:center;margin-bottom:24px}.rating-label{margin:0 0 12px;font-size:14px;color:var(--text-secondary)}.stars{display:flex;justify-content:center;gap:8px;margin-bottom:8px}.star-btn{background:none;border:none;padding:4px;cursor:pointer;transition:transform .2s ease}.star-btn:hover{transform:scale(1.1)}.rating-text{margin:0;font-weight:500;color:var(--primary-color)}.review-section label{display:block;font-size:14px;color:var(--text-secondary);margin-bottom:8px}.review-section textarea{width:100%;padding:12px;border:1px solid var(--border-light);border-radius:8px;resize:none;font-size:14px;font-family:inherit}.char-count{text-align:right;font-size:12px;color:var(--text-tertiary);margin:4px 0 0}.rate-dish-modal-actions{display:flex;gap:12px;padding:16px 20px;border-top:1px solid var(--border-light)}.rate-dish-modal-actions button{flex:1;padding:12px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.rate-dish-modal-actions .btn-secondary{background:#fff;border:1px solid var(--border-light);color:var(--text-primary)}.rate-dish-modal-actions .btn-primary{background:var(--primary-color);border:none;color:#fff}.rate-dish-modal-actions .btn-primary:disabled{opacity:.5;cursor:not-allowed}.add-menu-item-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.add-menu-item-modal{background:#fff;border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow:visible}.add-menu-item-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-light)}.add-menu-item-modal-header h2{margin:0;font-size:18px}.add-menu-item-modal-header .close-btn{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-secondary)}.add-menu-item-modal-content{padding:20px}.modal-subtitle{color:var(--text-secondary);margin:0 0 20px}.form-group{margin-bottom:16px;position:relative}.form-group label{display:block;font-size:14px;font-weight:500;margin-bottom:8px}.add-menu-item-modal .form-group:first-child{position:relative;z-index:10}.add-menu-item-modal .search-results-dropdown{z-index:1001;position:absolute;max-height:200px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid var(--border-light);border-radius:8px;font-size:14px;font-family:inherit}.form-group textarea{resize:vertical}.form-group .search-input-wrapper{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--border-light);border-radius:8px;background:#fff}.form-group .search-input-wrapper input{border:none;padding:0}.selected-dish-preview{display:flex;align-items:center;gap:12px;padding:12px;background:var(--background-light);border-radius:8px;margin-top:8px}.selected-dish-preview img{width:60px;height:60px;object-fit:cover;border-radius:8px}.selected-dish-preview .dish-info{text-align:left;margin:0}.selected-dish-preview .dish-info strong{display:block;margin-bottom:4px}.selected-dish-preview .dish-info p{margin:0;font-size:12px;color:var(--text-secondary)}.dish-thumbnail{width:32px;height:32px;object-fit:cover;border-radius:4px;margin-right:8px}.checkbox-group label{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-group input[type=checkbox]{width:auto}.add-menu-item-modal-actions{display:flex;gap:12px;padding:16px 20px;border-top:1px solid var(--border-light)}.add-menu-item-modal-actions button{flex:1;padding:12px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.add-menu-item-modal-actions .btn-secondary{background:#fff;border:1px solid var(--border-light);color:var(--text-primary)}.add-menu-item-modal-actions .btn-primary{background:var(--primary-color);border:none;color:#fff}.add-menu-item-modal-actions .btn-primary:disabled{opacity:.5;cursor:not-allowed}.menu-availability-section{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border-light)}.menu-availability-section .section-title{margin:0 0 8px;font-size:16px;font-weight:600}.menu-availability-section .section-description{margin:0 0 16px;color:var(--text-secondary);font-size:14px}.menu-availability-list{display:flex;flex-direction:column;gap:12px}.menu-availability-card{display:flex;justify-content:space-between;align-items:center;padding:16px;border:1px solid var(--border-light);border-radius:12px;cursor:pointer;transition:all .2s ease}.menu-availability-card:hover{border-color:var(--primary-color);box-shadow:0 2px 8px #0000000d}.menu-availability-card.unavailable{opacity:.6}.availability-restaurant-info h4{margin:0 0 4px;font-size:15px}.availability-restaurant-info .address{display:flex;align-items:center;gap:4px;margin:0 0 8px;font-size:13px;color:var(--text-secondary)}.availability-meta{display:flex;align-items:center;gap:12px}.availability-meta .restaurant-rating{display:flex;align-items:center;gap:4px;font-size:13px}.availability-meta .price-range{color:var(--text-secondary);font-size:13px}.availability-dish-info{text-align:right;display:flex;flex-direction:column;gap:4px;align-items:flex-end}.availability-dish-info .dish-price{font-size:18px;font-weight:700;color:var(--primary-color)}.availability-dish-info .dish-rating{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary)}.availability-dish-info .unavailable-badge{font-size:11px;padding:2px 8px;background:var(--error-bg);color:var(--error-color);border-radius:4px}.settings-link-card{cursor:pointer;transition:all .2s ease}.settings-link-card:hover{border-color:var(--primary-color)}.settings-link-card .chevron-icon{color:var(--text-tertiary)}.settings-card-icon.dietary{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}@media (max-width: 768px){.diets-grid,.excluded-ingredients-grid{grid-template-columns:1fr}.menu-availability-card{flex-direction:column;align-items:flex-start;gap:12px}.availability-dish-info{align-items:flex-start;text-align:left}}.comment{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.comment-content{flex:1;min-width:0;word-break:break-word}.comment-delete-btn{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-tertiary);opacity:0;transition:all .2s ease;flex-shrink:0}.comment:hover .comment-delete-btn{opacity:1}.comment-delete-btn:hover{color:var(--error-color)}.delete-confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.delete-confirm-modal{background:#fff;border-radius:12px;width:100%;max-width:360px;overflow:hidden}.delete-confirm-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-light)}.delete-confirm-header h3{margin:0;font-size:16px}.delete-confirm-header .close-btn{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-secondary)}.delete-confirm-modal>p{padding:20px;margin:0;color:var(--text-secondary);font-size:14px}.delete-confirm-actions{display:flex;gap:12px;padding:16px 20px;border-top:1px solid var(--border-light)}.delete-confirm-actions button{flex:1;padding:10px 16px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease}.delete-confirm-actions .btn-cancel{background:#fff;border:1px solid var(--border-light);color:var(--text-primary)}.delete-confirm-actions .btn-cancel:hover{background:var(--background-light)}.delete-confirm-actions .btn-delete{background:var(--error-color);border:none;color:#fff}.delete-confirm-actions .btn-delete:hover{background:var(--error-dark)}.delete-confirm-actions .btn-delete:disabled{opacity:.6;cursor:not-allowed}
