.platform-graph-viewport{position:relative;min-height:460px;overflow:hidden;background:#fff}.platform-graph-viewport svg{display:block;width:100%;height:100%;min-height:inherit;cursor:grab}.platform-graph-viewport svg:active{cursor:grabbing}.platform-graph__link{stroke:#1720193d;stroke-linecap:round;transition:opacity .18s ease,stroke .18s ease}.platform-graph__node{cursor:pointer}.platform-graph__node-label{text-anchor:middle;pointer-events:none;font-size:.76rem;font-weight:800}.platform-graph__node.is-dimmed,.platform-graph__link.is-dimmed{opacity:.22}.platform-graph__node.is-focused circle{stroke-width:3}.platform-graph-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:10px 12px;padding:12px;border-bottom:1px solid var(--line, #d4d3cb);background:var(--paper, #ffffff);font-size:1rem}.platform-graph-toolbar>label{display:grid;gap:5px;min-width:0;color:var(--muted, #66645d);font-size:.72rem;font-weight:800;text-transform:uppercase}.platform-graph-toolbar .search{flex:1 1 220px;min-width:160px}.platform-graph-toolbar .range-control{flex:0 1 170px;min-width:120px}.platform-graph-toolbar input[type=search],.platform-graph-toolbar select{width:100%;min-height:36px;padding:8px 9px;border:1px solid var(--line, #d4d3cb);border-radius:var(--radius-md, 6px);background:var(--paper-soft, #fbfaf6);color:var(--ink, #111111);font:inherit}.platform-graph-toolbar input[type=range]{width:100%;min-height:36px}.platform-graph-toolbar .button,.platform-graph-toolbar button{display:inline-flex;align-items:center;justify-content:center;gap:8px;align-self:end;min-height:36px;padding:8px 12px;border:1px solid var(--ink, #111111);border-radius:var(--radius-md, 6px);background:var(--paper, #ffffff);color:var(--ink, #111111);font:inherit;font-size:.76rem;font-weight:700;white-space:nowrap;cursor:pointer;transition:background .12s ease,color .12s ease}.platform-graph-toolbar button:hover:not(:disabled),.platform-graph-toolbar button.active{background:var(--ink, #111111);color:var(--paper, #ffffff)}.platform-graph-toolbar button:disabled{color:var(--muted, #66645d);border-color:var(--line, #d4d3cb);cursor:not-allowed}.platform-graph-toolbar .flow-arrows-toggle,.platform-graph-toolbar .direction-filter{display:inline-flex;align-items:center;gap:6px;align-self:center;min-height:36px;color:var(--ink, #111111);font-size:.78rem;font-weight:600;text-transform:none;-webkit-user-select:none;user-select:none;cursor:pointer}.platform-graph-toolbar .direction-filter select{width:auto;min-height:32px;padding:4px 8px}.platform-graph-toolbar select:disabled{opacity:.45;cursor:not-allowed}.platform-graph-toolbar .course-map-filter-menu{position:relative;align-self:center}.platform-graph-toolbar .course-map-filter-menu summary{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 10px;border:1px solid var(--line, #d4d3cb);border-radius:var(--radius-md, 6px);background:var(--paper-soft, #fbfaf6);color:var(--ink, #111111);cursor:pointer;font-size:.78rem;font-weight:800;text-transform:uppercase;list-style:none}.platform-graph-toolbar .course-map-filter-menu summary::-webkit-details-marker{display:none}.platform-graph-toolbar .course-map-filter-menu__panel{position:absolute;z-index:20;top:calc(100% + 6px);right:0;width:min(360px,calc(100vw - 32px));display:grid;gap:10px;padding:12px;border:1px solid var(--ink, #111111);border-radius:var(--radius-md, 6px);background:var(--paper, #fffdf8);box-shadow:8px 8px #1111111f}.platform-reference-section{margin-top:22px}.platform-reference-section .eyebrow{margin-bottom:10px}.mmt-definition-view{position:relative;margin-top:4px;padding:18px;border:1px solid var(--line, #d4d3cb);border-radius:var(--radius-md, 6px);color:#181f1b;background:#fff;font-family:Georgia,Iowan Old Style,Palatino Linotype,serif;font-size:.98rem;line-height:1.72;overflow-wrap:anywhere}.mmt-definition-view p{margin:0;color:#181f1b}.definition-term-ref{display:inline;margin:0 1px;padding:1px 4px;border:0;border-radius:3px;background:#ed028c14;color:#b31572;font:inherit;font-weight:600;cursor:pointer;transition:background .12s ease,color .12s ease}.definition-term-ref:hover,.definition-term-ref:focus-visible{background:#ed028c2e;outline:none}.mmt-rich-definition{font-family:Georgia,Iowan Old Style,Palatino Linotype,Book Antiqua,serif;line-height:1.55}.mmt-rich-definition .shtml-title-definition{display:none}.mmt-rich-definition .definiendum,.mmt-rich-definition [shtml\:definiendum]{color:#183f91;font-weight:800;font-style:italic}.mmt-rich-definition .symcomp,.mmt-rich-definition .shtml-comp,.mmt-rich-definition [shtml\:comp],.mmt-rich-definition [data-reference-term-id]{display:inline;margin:0 1px;padding:1px 4px;border-radius:3px;background:#ed028c14;color:#b31572;font-weight:600;cursor:pointer;transition:background .12s ease}.mmt-rich-definition .symcomp:hover,.mmt-rich-definition .shtml-comp:hover,.mmt-rich-definition [shtml\:comp]:hover,.mmt-rich-definition [data-reference-term-id]:hover{background:#ed028c2e}.mmt-rich-definition .varcomp{color:#828282}.mmt-rich-definition math{font-family:"Latin Modern Math",math,serif}.mmt-rich-definition .rustex-paragraph,.mmt-rich-definition .rustex-hbox,.mmt-rich-definition .rustex-text{display:inline;width:auto!important;min-width:0!important}.mmt-rich-definition .rustex-vskip,.mmt-rich-definition .rustex-hskip,.mmt-rich-definition .rustex-VFil,.mmt-rich-definition .rustex-HFil,.mmt-rich-definition .pdfdest,.mmt-rich-definition [shtml\:statementtitle]{display:none!important}.definition-preview-popover{position:fixed;z-index:1200;width:min(380px,calc(100vw - 24px));max-height:min(420px,calc(100vh - 24px));padding:14px 16px;overflow:auto;border:1px solid var(--ink, #181f1b);border-radius:var(--radius-md, 6px);background:#fff;box-shadow:0 18px 44px #1113;color:#181f1b;pointer-events:auto}.definition-preview-popover__label{margin-bottom:8px;color:var(--muted, #6f756f);font-size:.66rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.definition-preview-popover h3{margin:0 0 10px;font-family:Georgia,Iowan Old Style,Palatino Linotype,serif;font-size:1.35rem;line-height:1.05;overflow-wrap:anywhere}.definition-preview-popover p{margin:0;color:#181f1b;font-family:Georgia,Iowan Old Style,Palatino Linotype,serif;font-size:.95rem;line-height:1.55}.definition-preview-popover__content{color:#181f1b;font-family:Georgia,Iowan Old Style,Palatino Linotype,serif;font-size:.95rem;line-height:1.5}.definition-preview-popover__content p,.definition-preview-popover__content .rustex-paragraph{margin:0}.definition-preview-popover--loading,.definition-preview-popover--missing,.definition-preview-popover--error{border-color:var(--line, #d4d3cb)}.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{--paper: #f4efe3;--paper-deep: #ebe4d3;--paper-soft: #faf6ec;--card: #fffdf5;--ink: #1f2a23;--ink-soft: #4a564d;--ink-mute: #7a8479;--rule: #d8cfba;--rule-soft: #e7dfca;--forest: #224236;--forest-deep: #15281f;--forest-tint: #d6e3da;--terracotta: #c25a3c;--terracotta-tint: #f1d9cc;--goldenrod: #b58a48;--goldenrod-tint: #ecdcb8;--slate: #4f6e8a;--slate-tint: #d4dee8;--shadow-1: 0 1px 0 rgba(31, 42, 35, .04), 0 1px 2px rgba(31, 42, 35, .04);--shadow-2: 0 1px 0 rgba(31, 42, 35, .04), 0 8px 24px -10px rgba(31, 42, 35, .18);color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--paper);color:var(--ink)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(rgba(31,42,35,.02) 1px,transparent 1.2px),radial-gradient(rgba(31,42,35,.014) 1px,transparent 1px),var(--paper);background-position:0 0,1px 2px,0 0;background-size:3px 3px,7px 7px,auto}button,input,textarea{font:inherit}.app-shell{min-height:100vh}.topbar{background:#f4efe3eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:10}.topbar-inner{align-items:center;display:grid;gap:24px;grid-template-columns:auto 1fr auto;margin:0 auto;max-width:1400px;padding:14px clamp(18px,4vw,48px)}.topbar-actions{align-items:center;display:inline-flex;gap:8px;justify-content:flex-end;position:relative}.brand{align-items:center;background:transparent;border:0;color:var(--ink);cursor:pointer;display:inline-flex;gap:12px;padding:0;text-align:left}.brand-mark{align-items:center;background:var(--forest);border-radius:999px;color:var(--paper-soft);display:inline-flex;font-family:Georgia,serif;font-size:18px;font-style:italic;font-weight:700;height:36px;justify-content:center;width:36px}.brand-text{display:grid;line-height:1.05}.brand-text strong{font-family:Georgia,Times New Roman,serif;font-size:19px;font-weight:500}.brand-text small{color:var(--ink-mute);font-size:11px;letter-spacing:.08em;margin-top:2px;text-transform:uppercase}.eyebrow{color:#6d756e;font-size:12px;font-weight:700;letter-spacing:0;margin:0 0 6px;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{font-size:32px;line-height:1.1;margin-bottom:0}h2{font-size:24px;line-height:1.2}h3{font-size:16px}.tabs{align-items:center;background:var(--paper-deep);border:1px solid var(--rule);border-radius:999px;display:flex;flex-wrap:wrap;gap:2px;justify-content:center;justify-self:center;padding:3px}.tab{background:transparent;border:0;border-radius:999px;color:var(--ink-soft);cursor:pointer;min-height:32px;padding:7px 13px}.tab.active{background:var(--card);box-shadow:var(--shadow-1);color:var(--forest)}main{padding:clamp(18px,4vw,48px)}.sync-pill,.text-button,.primary-link{align-items:center;border-radius:999px;cursor:pointer;display:inline-flex;font:inherit;gap:8px;white-space:nowrap}.sync-pill{background:var(--card);border:1px solid var(--rule);color:var(--ink-soft);font-size:12.5px;min-height:34px;padding:6px 12px 6px 9px}.sync-dot{background:var(--forest);border-radius:999px;box-shadow:0 0 0 3px var(--forest-tint);height:8px;width:8px}.app-menu{position:relative}.menu-button{align-items:center;background:var(--card);border:1px solid var(--rule);border-radius:999px;cursor:pointer;display:inline-grid;gap:4px;height:36px;justify-items:center;padding:0;width:36px}.menu-button span{background:var(--forest);border-radius:999px;display:block;height:2px;width:15px}.menu-button.active,.menu-button:hover{background:var(--forest-tint)}.app-menu-popover{background:var(--card);border:1px solid var(--rule);border-radius:12px;box-shadow:var(--shadow-2);display:grid;gap:4px;min-width:260px;padding:6px;position:absolute;right:0;top:calc(100% + 8px);z-index:20}.app-menu-popover button{background:transparent;border:0;border-radius:8px;color:var(--ink);cursor:pointer;display:grid;gap:2px;padding:10px;text-align:left}.app-menu-popover button.active,.app-menu-popover button:hover{background:var(--paper-deep)}.app-menu-popover small{color:var(--ink-mute);font-size:12px}.text-button{background:transparent;border:1px solid transparent;color:var(--forest);font-size:13px;min-height:34px;padding:7px 10px}.text-button:hover{background:var(--paper-deep)}.primary-link{background:var(--forest);border:1px solid var(--forest);color:var(--paper-soft);margin-top:14px;min-height:40px;padding:9px 14px}.ops-actions .primary-link,.shop-data-actions .primary-link,.highlight-card .primary-link{margin-top:0}.browse-page{margin:0 auto;max-width:1200px;padding-bottom:32px}.browse-search-wrap{border-bottom:1px solid var(--rule);margin-bottom:36px;padding:6px 0 28px}.browse-eyebrow-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:18px}.browse-h1{font-family:Georgia,Times New Roman,serif;font-size:clamp(40px,5.2vw,68px);font-weight:400;letter-spacing:0;line-height:1;margin:0 0 22px;text-wrap:balance}.browse-h1 em,.browse-section-head h3 em,.browse-footer h3 em{color:var(--forest);font-style:italic}.browse-search{align-items:center;background:var(--card);border:1px solid var(--rule);border-radius:14px;box-shadow:var(--shadow-1);display:flex;gap:12px;min-height:64px;padding:14px 18px;transition:border-color .12s ease,box-shadow .12s ease}.browse-search:focus-within{border-color:var(--forest);box-shadow:0 0 0 4px #d6e3dabf}.browse-search>span{color:var(--ink-mute);font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.browse-search input{background:transparent;border:0;color:var(--ink);flex:1;font-size:17px;min-width:0;outline:0}.browse-search button,.browse-search kbd{background:var(--paper-deep);border:1px solid var(--rule);border-radius:999px;color:var(--ink-soft);font-size:12px;min-height:28px;padding:4px 10px}.browse-search-scope{align-items:center;color:var(--ink-mute);display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.browse-search-scope>span{font-size:11.5px;font-weight:800;letter-spacing:.08em;margin-right:4px;text-transform:uppercase}.browse-search-scope button{background:transparent;border:0;border-radius:6px;color:var(--terracotta);cursor:pointer;font-family:Georgia,Times New Roman,serif;font-size:13px;font-style:italic;padding:4px 8px}.browse-search-scope button:hover{background:var(--terracotta-tint)}.browse-featured{margin-bottom:44px}.featured-card{background:var(--card);border:1px solid var(--rule);border-radius:18px;display:grid;grid-template-columns:1.1fr 1fr;overflow:hidden;padding:0;text-align:left;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;width:100%}.featured-card:hover,.recipe-card-img:hover,.cookbook-card:hover,.plan-card:hover{border-color:var(--ink-mute);box-shadow:var(--shadow-2);transform:translateY(-2px)}.featured-img{background-color:var(--paper-deep);background-position:center;background-size:cover;min-height:320px}.featured-body{display:flex;flex-direction:column;gap:12px;justify-content:center;padding:36px clamp(24px,3vw,40px)}.featured-body strong{color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:clamp(34px,4vw,48px);font-weight:400;line-height:1.02}.featured-body>span:not(.eyebrow):not(.featured-meta):not(.featured-actions){color:var(--ink-soft);font-size:15.5px;line-height:1.55;max-width:44ch}.featured-meta,.featured-actions,.rci-meta{align-items:center;color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:8px}.featured-actions{margin-top:8px}.featured-open,.rci-title-button{background:transparent;border:0;cursor:pointer;padding:0;text-align:left}.featured-open{color:var(--terracotta);font-weight:700}.save-btn,.save-fab{background:var(--card);border:1px solid var(--rule);color:var(--ink);cursor:pointer;font-weight:700}.save-btn{border-radius:999px;min-height:36px;padding:7px 14px}.save-btn.saved,.save-fab.saved{background:var(--forest);border-color:var(--forest);color:var(--paper-soft)}.browse-section{margin:44px 0}.browse-section-head{align-items:end;display:flex;gap:16px;justify-content:space-between;margin-bottom:18px}.browse-section-head h3,.browse-footer h3{font-family:Georgia,Times New Roman,serif;font-size:clamp(28px,3vw,36px);font-weight:400;line-height:1;margin:6px 0 0}.recipe-card-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.recipe-card-img{background:var(--card);border:1px solid var(--rule);border-radius:14px;display:flex;flex-direction:column;overflow:hidden;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.rci-art{aspect-ratio:4 / 3;background-color:var(--paper-deep);background-position:center;background-size:cover;position:relative}.rci-art>span{background:#fffdf5f2;border:1px solid var(--rule);border-radius:999px;color:var(--ink);font-size:11px;font-weight:700;padding:4px 10px;position:absolute;right:10px;top:10px}.save-fab{align-items:center;border-radius:999px;display:inline-flex;font-size:18px;height:32px;justify-content:center;left:10px;line-height:1;padding:0;position:absolute;top:10px;width:32px}.rci-body{display:flex;flex:1;flex-direction:column;gap:7px;padding:16px 18px 18px}.rci-body h4{font-family:Georgia,Times New Roman,serif;font-size:22px;font-weight:400;line-height:1.1;margin:0}.rci-title-button{color:var(--ink);font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}.rci-title-button:hover,.featured-open:hover{color:var(--forest)}.rci-body p:not(.eyebrow){color:var(--ink-soft);font-size:14px;line-height:1.5;margin:0}.rci-meta{border-top:1px dashed var(--rule-soft);font-size:12px;margin-top:auto;padding-top:10px}.cookbook-grid,.plan-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.cookbook-card,.plan-card{background:var(--card);border:1px solid var(--rule);border-radius:14px;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;overflow:hidden;padding:0;text-align:left;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.cookbook-cover{aspect-ratio:5 / 4;background-position:center;background-size:cover;border-left:7px solid var(--forest)}.cookbook-gold .cookbook-cover{border-left-color:var(--goldenrod)}.cookbook-terracotta .cookbook-cover{border-left-color:var(--terracotta)}.cookbook-meta,.plan-meta{display:grid;gap:4px;padding:14px 16px 16px}.cookbook-meta strong,.plan-meta strong{font-family:Georgia,Times New Roman,serif;font-size:21px;font-weight:400}.cookbook-meta span,.plan-meta span{color:var(--ink-soft);font-size:13px}.cookbook-meta small,.plan-meta small{color:var(--ink-mute);font-size:12px}.plan-covers{background:var(--rule);display:grid;gap:2px;grid-template-columns:repeat(3,1fr)}.plan-covers span{aspect-ratio:1;background-color:var(--paper-deep);background-position:center;background-size:cover}.browse-empty{background:var(--paper-soft);border:1px dashed var(--rule);border-radius:14px;display:grid;gap:6px;padding:42px 20px;text-align:center}.browse-footer{align-items:center;background:radial-gradient(circle at 82% 50%,rgba(214,227,218,.8),transparent 58%),var(--card);border:1px solid var(--rule);border-radius:18px;display:grid;gap:32px;grid-template-columns:1.3fr 1fr;margin-top:48px;padding:36px}.browse-footer p:not(.eyebrow){color:var(--ink-soft);line-height:1.55;max-width:58ch}.browse-stats{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.browse-stats div{background:#fffdf5bd;border:1px solid var(--rule);border-radius:8px;padding:14px}.browse-stats dt{color:var(--ink-mute);font-size:12px;font-weight:800;text-transform:uppercase}.browse-stats dd{font-size:30px;font-weight:800;line-height:1;margin:8px 0 0}@media(max-width:900px){.topbar-inner{align-items:start;grid-template-columns:1fr;gap:12px}.tabs{justify-content:flex-start;justify-self:stretch;overflow-x:auto}.sync-pill{justify-self:start}.topbar-actions{justify-content:flex-start}.app-menu-popover{left:0;right:auto}.featured-card,.browse-footer{grid-template-columns:1fr}.featured-img{min-height:260px}.browse-section-head{align-items:flex-start;flex-direction:column}}@media(max-width:640px){main{padding:16px}.brand-text small{display:none}.browse-h1{font-size:38px}.browse-search{align-items:stretch;flex-direction:column}.recipe-card-grid,.cookbook-grid,.plan-grid{grid-template-columns:1fr}.browse-footer{padding:24px}}.home-dashboard{display:grid;gap:22px}.home-hero{align-items:stretch;background:#e7f0e7;border:1px solid #cfdecf;border-radius:8px;display:grid;gap:24px;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);padding:clamp(20px,4vw,38px)}.home-hero h2{font-size:clamp(28px,4vw,46px);line-height:1.06;margin-bottom:18px;max-width:680px}.home-actions{display:flex;flex-wrap:wrap;gap:10px}.home-actions button,.home-section-header button,.home-recipe-list button,.home-ingredient-cloud button{border-radius:8px;cursor:pointer}.home-actions button,.home-section-header button{background:#fff;border:1px solid #cfc8ba;color:#26312a;min-height:40px;padding:9px 12px}.home-actions button.primary{background:#2f5d50;border-color:#2f5d50;color:#fff}.home-stat-strip{align-content:stretch;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.home-stat-strip div{background:#ffffffbd;border:1px solid #cfdecf;border-radius:8px;display:grid;min-height:96px;padding:16px}.home-stat-strip span{align-self:end;font-size:32px;font-weight:800;line-height:1}.home-stat-strip small{color:#59635b;font-weight:700;margin-top:8px}.home-grid{display:grid;gap:18px;grid-template-columns:minmax(280px,1fr) minmax(280px,1fr) minmax(240px,.7fr)}.home-section{background:#fff;border:1px solid #ded9cd;border-radius:8px;display:grid;gap:14px;min-width:0;padding:18px}.home-section-header{align-items:center;display:flex;gap:12px;justify-content:space-between}.home-section-header h3{margin:0}.home-section-header button:disabled{cursor:default;opacity:.58}.home-recipe-list{display:grid;gap:8px}.home-recipe-list button{align-items:center;background:#f8f7f2;border:1px solid transparent;color:#26312a;display:flex;gap:10px;justify-content:space-between;min-height:54px;padding:10px 12px;text-align:left}.home-recipe-list button:hover,.home-ingredient-cloud button:hover{border-color:#cfc8ba}.home-recipe-list span{font-weight:700}.home-recipe-list small{color:#6d756e;flex:0 0 auto}.home-ingredient-cloud{align-content:start;display:flex;flex-wrap:wrap;gap:8px}.home-ingredient-cloud button{align-items:center;background:#f8f7f2;border:1px solid transparent;color:#26312a;display:inline-flex;gap:7px;min-height:34px;padding:7px 10px}.home-sync-facts{display:grid;gap:10px;margin:0}.home-sync-facts div{background:#f8f7f2;border-radius:8px;padding:12px}.home-sync-facts dt{color:#6d756e;font-size:13px}.home-sync-facts dd{font-weight:800;margin:4px 0 0}.recipe-layout{display:grid;gap:24px;grid-template-columns:minmax(260px,360px) minmax(0,1fr)}.recipe-list-panel,.recipe-detail,.entity-card,.audit,.map-view{background:#fff;border:1px solid #ded9cd;border-radius:8px}.recipe-list-panel{align-self:start;padding:16px;position:sticky;top:118px}.panel-header,.entity-title,.meta-row{align-items:center;display:flex;gap:10px;justify-content:space-between}.panel-header h2,.entity-title h2{margin:0}.search{border:1px solid #cfc8ba;border-radius:8px;margin:16px 0;min-height:42px;padding:10px 12px;width:100%}.recipe-list{display:grid;gap:8px}.recipe-row{align-items:center;background:#f8f7f2;border:1px solid transparent;border-radius:8px;color:#26312a;cursor:pointer;display:flex;justify-content:space-between;min-height:48px;padding:10px 12px;text-align:left}.recipe-row.active{background:#e7f0e7;border-color:#8fb796}.recipe-row small,.ingredient-list small,.schedule-list small{color:#6d756e}.recipe-detail{overflow:hidden}.recipe-hero{align-items:center;background:#e7f0e7;display:grid;gap:24px;grid-template-columns:160px minmax(0,1fr);padding:clamp(18px,4vw,36px)}.recipe-hero-art{aspect-ratio:1;background:#fffdf7;border:1px solid #cfdecf;border-radius:8px;padding:12px}.recipe-hero-art svg{height:100%;width:100%}.recipe-hero-art line,.graph .edge{stroke:#8aa08f;stroke-width:2}.recipe-hero-art circle{fill:#d36c4d}.recipe-hero-art .center{fill:#2f5d50}.meta-row{justify-content:flex-start}.meta-row span{background:#fff;border-radius:8px;padding:6px 10px}.tag-row{display:flex;flex-wrap:wrap;gap:8px;padding:18px clamp(18px,4vw,36px) 0}.tag-row.compact{padding:0}.tag{background:#f0e1d8;border-radius:8px;color:#6b3e2e;font-size:13px;padding:5px 9px}.tag.muted{background:#eef0ec;color:#59635b}.detail-grid{display:grid;gap:28px;grid-template-columns:minmax(260px,.8fr) minmax(300px,1.2fr);padding:clamp(18px,4vw,36px)}.detail-tabs{border-bottom:1px solid #ebe7dd;display:flex;gap:8px;padding:18px clamp(18px,4vw,36px) 0}.detail-tab{background:transparent;border:0;border-bottom:3px solid transparent;color:#59635b;cursor:pointer;font-weight:700;padding:0 2px 12px}.detail-tab.active{border-bottom-color:#2f5d50;color:#26312a}.source-panel{display:grid;gap:14px;padding:clamp(18px,4vw,36px)}.source-toolbar{align-items:center;display:flex;gap:12px;justify-content:space-between}.source-toolbar code{overflow-wrap:anywhere}.source-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.source-mode{background:#f8f7f2;border:1px solid #ded9cd;border-radius:8px;display:flex;padding:3px}.source-mode button{background:transparent;border:0;border-radius:6px;color:#59635b;cursor:pointer;font-size:13px;font-weight:700;min-height:30px;padding:5px 9px}.source-mode button.active{background:#fff;color:#26312a;box-shadow:0 1px 3px #26312a24}.source-status{color:#59635b;font-size:13px;font-weight:700}.source-status.error,.source-error{color:#8f2f24}.source-status.dirty{color:#9a6a20}.source-save{background:#2f5d50;border:1px solid #2f5d50;border-radius:8px;color:#fff;cursor:pointer;min-height:38px;padding:8px 12px}.source-save:disabled{background:#d8d4ca;border-color:#d8d4ca;color:#6d756e;cursor:default}.source-editor{background:#191f1b;border:1px solid #3b463e;border-radius:8px;color:#f8f7f2;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.55;min-height:520px;padding:16px;resize:vertical;tab-size:2;width:100%}.source-loading,.source-error{background:#f8f7f2;border-radius:8px;padding:16px}.structured-source{display:grid;gap:18px}.source-field-grid{display:grid;gap:12px;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(90px,.35fr))}.source-field,.source-field-grid label,.ingredient-edit-row label{display:grid;gap:6px}.source-field span,.source-field-grid span,.ingredient-edit-row span{color:#6d756e;font-size:12px;font-weight:700;text-transform:uppercase}.structured-source input,.structured-source textarea{background:#fffdf7;border:1px solid #cfc8ba;border-radius:8px;color:#26312a;min-height:40px;padding:9px 11px;width:100%}.structured-source textarea{line-height:1.55;min-height:110px;resize:vertical}.editable-block-list{border:1px solid #ebe7dd;border-radius:8px;display:grid;gap:10px;padding:14px}.editable-block-header{align-items:center;display:flex;justify-content:space-between}.editable-block-header h3{margin:0}.editable-block-header button,.remove-row{background:#eef0ec;border:1px solid #cfc8ba;border-radius:8px;color:#26312a;cursor:pointer;min-height:34px;padding:6px 10px}.ingredient-edit-row{align-items:end;background:#f8f7f2;border-radius:8px;display:grid;gap:10px;grid-template-columns:72px 120px minmax(140px,1fr) minmax(140px,1fr) minmax(140px,1fr) auto auto;padding:12px}.optional-edit{align-items:center;display:flex;gap:7px;min-height:40px}.optional-edit input{min-height:auto;width:auto}.remove-row{background:#fff7f2;border-color:#e4c6b8;color:#8f2f24}.ingredient-list,.compact-list,.schedule-list{list-style:none;margin:0;padding:0}.ingredient-list{display:grid;gap:10px}.ingredient-list li{align-items:center;border-bottom:1px solid #ebe7dd;display:grid;gap:8px;grid-template-columns:auto 1fr auto auto;min-height:38px;padding-bottom:8px}.category-dot{background:#6d756e;border-radius:999px;display:inline-block;height:10px;width:10px}.category-dot.produce{background:#5b8c5a}.category-dot.pantry{background:#b58a48}.category-dot.spices{background:#c6533d}.category-dot.condiments{background:#7b5fa7}.method-text p{line-height:1.65}.semantic-ref{background:#eef6ef;border:1px solid #b8d1bc;border-radius:6px;color:#2f5d50;cursor:pointer;display:inline;font-weight:700;line-height:1.25;padding:1px 5px}.semantic-ref.recipe{background:#edf3f8;border-color:#b8ccdc;color:#365d79}.semantic-ref:hover,.semantic-ref:focus-visible{background:#2f5d50;color:#fff;outline:none}.index-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.entity-card{padding:18px}.entity-card.selected{border-color:#8fb796;box-shadow:0 0 0 3px #e7f0e7}.entity-card.wide{grid-column:span 2}.compact-list{display:grid;gap:6px}.compact-list li{background:#f8f7f2;border-radius:8px;padding:8px 10px}.schedule-list{display:grid;gap:8px;margin-top:16px}.schedule-list li{align-items:center;background:#f8f7f2;border-radius:8px;display:grid;gap:10px;grid-template-columns:120px 90px 1fr auto;min-height:44px;padding:9px 12px}.inventory-view{background:#fff;border:1px solid #ded9cd;border-radius:8px;display:grid;gap:18px;padding:20px}.inventory-header,.inventory-source{align-items:center;display:flex;gap:14px;justify-content:space-between}.inventory-header h2{margin:0}.inventory-source{background:#f8f7f2;border-radius:8px;justify-content:flex-start;padding:10px 12px}.inventory-source small{color:#6d756e}.inventory-locations{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.inventory-location{border:1px solid #ebe7dd;border-radius:8px;padding:14px}.inventory-location h3{margin-bottom:12px}.inventory-location ul,.map-inventory-list{display:grid;gap:10px;list-style:none;margin:0;padding:0}.inventory-location li{align-items:center;background:#f8f7f2;border-radius:8px;display:grid;gap:8px;grid-template-columns:auto auto 1fr;padding:10px}.inventory-location li code{grid-column:1 / -1;overflow-wrap:anywhere}.ops-page{display:grid;gap:22px;margin:0 auto;max-width:1240px}.ops-header{align-items:start;border-bottom:1px solid var(--rule);display:flex;gap:24px;justify-content:space-between;padding-bottom:22px}.ops-header h2{font-family:Georgia,Times New Roman,serif;font-size:clamp(34px,4vw,52px);font-weight:400;letter-spacing:0;line-height:1;margin:0}.ops-header h2 em,.price-panel h3,.inventory-restock h3{color:var(--forest);font-style:italic}.ops-header p:not(.eyebrow){color:var(--ink-soft);line-height:1.55;margin:12px 0 0;max-width:68ch}.ops-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.primary-link:disabled,.text-button:disabled{cursor:default;opacity:.58}.backend-link{align-items:center;border:1px solid var(--rule);border-radius:999px;color:var(--forest);display:inline-flex;font-size:13px;min-height:36px;padding:7px 11px;text-decoration:none;white-space:nowrap}.backend-link:hover{background:var(--paper-deep)}.shop-data-callout{align-items:center;background:var(--paper-soft);border:1px dashed var(--rule);border-radius:14px;display:flex;gap:18px;justify-content:space-between;padding:16px}.shop-data-callout.ready{background:var(--forest-tint);border-style:solid}.shop-data-callout>div:first-child{display:grid;gap:4px;min-width:0}.shop-data-callout strong{color:var(--ink)}.shop-data-callout span,.shop-data-callout small{color:var(--ink-soft);font-size:13px;line-height:1.45}.shop-data-callout.settings-panel{align-items:start}.shop-data-actions.summary-actions{align-items:end;align-self:stretch;justify-content:center}.permission-pill{border:1px solid var(--rule);border-radius:999px;display:inline-flex;justify-self:start;padding:4px 8px;text-transform:none}.permission-pill.denied,.permission-pill.unsupported{background:var(--terracotta-tint);color:var(--terracotta)}.permission-pill.granted{background:var(--forest-tint);color:var(--forest)}.permission-pill.prompt,.permission-pill.unknown{background:var(--paper-deep)}.shop-data-actions{align-items:end;display:grid;gap:8px;justify-content:flex-end;justify-items:end;max-width:430px;min-width:0;width:min(430px,100%)}.shop-action-row{align-items:end;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;width:100%}.shop-radius-field{color:var(--ink-mute);display:grid;font-size:11px;font-weight:800;gap:4px;text-transform:uppercase}.shop-radius-field select{appearance:none;background:var(--card);border:1px solid var(--rule);border-radius:999px;color:var(--forest);cursor:pointer;min-height:36px;min-width:92px;padding:7px 28px 7px 12px}.manual-location-form{align-items:end;display:grid;gap:6px;grid-template-columns:minmax(0,1fr) auto;min-width:0;width:100%}.manual-location-field{color:var(--ink-mute);display:grid;font-size:11px;font-weight:800;gap:4px;min-width:0;text-transform:uppercase}.manual-location-label{color:inherit}.location-input-wrap{min-width:0;position:relative}.manual-location-form input{background:var(--card);border:1px solid var(--rule);border-radius:999px;color:var(--ink);min-height:36px;min-width:0;padding:7px 12px;text-transform:none;width:100%}.manual-location-form button{background:var(--card);border:1px solid var(--rule);border-radius:999px;color:var(--forest);cursor:pointer;min-height:36px;padding:7px 12px;white-space:nowrap}.manual-location-form button:disabled{cursor:default;opacity:.58}.settings-page{margin:0 auto;max-width:1180px}.settings-grid,.shop-highlights{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.settings-grid{margin-top:12px}.settings-card,.highlight-card{background:var(--card);border:1px solid var(--rule);border-radius:8px;display:grid;gap:8px;padding:16px}.settings-card h3,.highlight-card h3{font-size:18px;margin:0}.settings-card p,.highlight-card p{color:var(--ink-soft);font-size:13px;line-height:1.45;margin:0}.shop-highlights{align-items:stretch}.shop-highlights.active-area{grid-template-columns:minmax(0,1.8fr) minmax(260px,.95fr)}.shop-highlights.needs-area{grid-template-columns:minmax(190px,.8fr) minmax(0,1.4fr) minmax(240px,1fr) minmax(180px,.75fr)}.area-highlight{background:var(--forest-tint)}.deals-highlight{background:#f7f0df}.specialist-highlight{background:var(--slate-tint)}.my-shops-highlight{background:var(--goldenrod-tint)}.offer-highlight-list,.specialist-list{display:grid;gap:7px}.offer-highlight-list{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.shop-highlights.active-area .offer-highlight-list a:first-child{grid-column:span 2;grid-template-columns:112px minmax(0,1fr);grid-template-rows:1fr;min-height:128px}.offer-highlight-list a,.specialist-item{background:#fffdf5ad;border:1px solid rgba(31,42,35,.12);border-radius:8px;color:var(--ink);display:grid;text-align:left;text-decoration:none}.offer-highlight-list a{gap:10px;grid-template-rows:auto 1fr;min-height:188px;overflow:hidden;padding:8px}.offer-highlight-list a.my-shop-offer{border-color:#2242365c;box-shadow:inset 0 0 0 1px #22423629}.offer-highlight-list img,.offer-image-fallback{border-radius:6px;height:92px;width:100%}.offer-highlight-list img{object-fit:cover}.offer-image-fallback{align-items:center;background:var(--forest);color:var(--paper);display:flex;font-family:Georgia,Times New Roman,serif;font-size:34px;font-weight:700;justify-content:center}.shop-highlights.active-area .offer-highlight-list a:first-child img,.shop-highlights.active-area .offer-highlight-list a:first-child .offer-image-fallback{height:100%;min-height:108px}.offer-highlight-list span,.specialist-item{min-width:0}.offer-highlight-list strong,.specialist-list strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.offer-highlight-list small,.specialist-item>span{color:var(--ink-soft);display:block;font-size:12px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.offer-highlight-list em{color:var(--forest);display:block;font-size:11px;font-style:normal;font-weight:800;margin-top:6px;text-transform:uppercase}.specialist-item{gap:4px;grid-template-columns:1fr;min-height:72px;padding:11px}.specialist-list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.highlight-head{align-items:start;display:flex;gap:12px;justify-content:space-between}.highlight-head span{background:#fffdf5b8;border:1px solid rgba(31,42,35,.12);border-radius:999px;color:var(--forest);display:inline-flex;font-size:12px;font-weight:800;padding:5px 8px;white-space:nowrap}.highlight-subcopy{max-width:62ch}.location-suggestions{background:var(--card);border:1px solid var(--rule);border-radius:12px;box-shadow:var(--shadow-2);display:grid;left:0;max-height:280px;overflow-y:auto;padding:6px;position:absolute;right:0;top:calc(100% + 6px);z-index:30}.location-suggestions button{background:transparent;border:0;border-radius:8px;color:var(--ink);cursor:pointer;display:grid;gap:2px;min-height:0;padding:9px 10px;text-align:left}.location-suggestions button:hover{background:var(--paper-soft)}.location-suggestions button strong{font-size:13px;line-height:1.25}.location-suggestions button span,.location-suggestion-note{color:var(--ink-soft);font-size:12px;line-height:1.35;text-transform:none}.location-suggestion-note{padding:8px 10px}.ops-stat-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.ops-stat-grid div{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:16px}.ops-stat-grid dt{color:var(--ink-mute);font-size:11px;font-weight:800;text-transform:uppercase}.ops-stat-grid dd{color:var(--ink);font-size:30px;font-weight:800;line-height:1;margin:8px 0 0}.shopping-layout{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1fr) 320px}.shopping-list-card,.shopping-summary section,.price-panel,.inventory-restock{background:var(--card);border:1px solid var(--rule);border-radius:14px;box-shadow:var(--shadow-1)}.shopping-list-card{display:grid;gap:6px;padding:8px 18px 18px}.shopping-group{border-bottom:1px dashed var(--rule);padding:12px 0}.shopping-group:last-child{border-bottom:0}.shopping-group-head{align-items:center;color:var(--ink-mute);display:grid;gap:8px;grid-template-columns:auto 1fr auto;margin-bottom:8px}.shopping-group-head h3{color:var(--ink);font-size:15px;margin:0}.shopping-group-head span:last-child{font-size:12px;font-weight:800}.shopping-item{align-items:center;border-radius:10px;display:grid;gap:12px;grid-template-columns:auto minmax(0,1fr) minmax(180px,auto);padding:10px 8px}.shopping-item:hover{background:var(--paper-soft)}.shopping-item.checked .shopping-item-main strong,.shopping-item.checked .shopping-item-main span{color:var(--ink-mute);text-decoration:line-through}.shopping-check{background:var(--card);border:1px solid var(--rule);border-radius:999px;cursor:pointer;height:22px;position:relative;width:22px}.shopping-check.checked{background:var(--forest);border-color:var(--forest)}.shopping-check.checked:after{color:var(--paper-soft);content:"✓";font-size:13px;font-weight:800;left:50%;position:absolute;top:50%;transform:translate(-50%,-54%)}.shopping-item-main{display:grid;gap:3px}.shopping-item-main strong{font-size:15px}.shopping-item-main span,.shopping-item-side span,.shopping-summary p,.price-panel p{color:var(--ink-soft);font-size:13px;line-height:1.45}.shopping-item-side{align-items:end;display:grid;gap:4px;justify-items:end;text-align:right}.stock-pill,.source-pill,.store-badges small{border-radius:999px;display:inline-flex;font-size:11px;font-weight:800;padding:4px 8px;text-transform:uppercase}.stock-pill.stocked,.source-pill.scraped{background:var(--forest-tint);color:var(--forest)}.stock-pill.missing,.source-pill.crowd{background:var(--terracotta-tint);color:var(--terracotta)}.shopping-summary{display:grid;gap:14px;position:sticky;top:96px}.shopping-summary section{display:grid;gap:12px;padding:16px}.shopping-summary h3{font-size:17px;margin:0}.progress-bar{background:var(--paper-deep);border-radius:999px;height:10px;overflow:hidden}.progress-bar span{background:var(--forest);display:block;height:100%}.recommended-stops{display:grid;gap:8px}.recommended-stops button{background:var(--paper-soft);border:1px solid var(--rule);border-radius:8px;color:var(--ink);cursor:pointer;display:grid;gap:3px;padding:10px;text-align:left}.recommended-stops span,.muted-note{color:var(--ink-mute);font-size:12px}.shop-filters{align-items:start;display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}.mode-toggle,.store-scope-toggle,.ingredient-chip-row{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.mode-toggle{background:var(--paper-deep);border:1px solid var(--rule);border-radius:999px;padding:3px}.mode-toggle button,.store-scope-toggle button,.ingredient-chip-row button{border-radius:999px;cursor:pointer}.mode-toggle button{background:transparent;border:0;color:var(--ink-soft);min-height:30px;padding:6px 11px}.mode-toggle button.active{background:var(--card);color:var(--forest)}.store-scope-toggle button{background:var(--card);border:1px solid var(--rule);color:var(--ink-soft);min-height:34px;padding:7px 11px}.store-scope-toggle button.active{background:var(--forest);border-color:var(--forest);color:var(--paper-soft)}.store-scope-toggle button:disabled{cursor:default;opacity:.52}.store-search{color:var(--ink-mute);display:grid;font-size:11px;font-weight:800;gap:5px;max-width:420px;text-transform:uppercase;width:100%}.store-search input{background:var(--card);border:1px solid var(--rule);border-radius:999px;color:var(--ink);min-height:38px;padding:8px 12px;text-transform:none}.ingredient-chip-row button{background:transparent;border:1px solid var(--rule);color:var(--ink-soft);min-height:32px;padding:6px 10px}.ingredient-chip-row button.active{background:var(--forest);border-color:var(--forest);color:var(--paper-soft)}.ingredient-chip-row button.clear-chip{background:var(--paper-deep);border-style:dashed;color:var(--forest)}.my-shops-panel{align-items:center;border:1px solid var(--rule);border-radius:12px;display:grid;gap:14px;grid-template-columns:minmax(220px,.4fr) minmax(0,1fr) auto;padding:14px}.my-shops-panel h3{font-size:18px;margin:0}.my-shops-panel span,.my-shops-empty{color:var(--ink-soft);font-size:13px;line-height:1.4}.my-shop-chip-row{display:flex;flex-wrap:wrap;gap:7px}.my-shop-chip{background:var(--card);border:1px solid var(--rule);border-radius:10px;color:var(--ink);display:flex;gap:4px;min-height:42px;overflow:hidden}.my-shop-chip.nearby{border-color:var(--forest)}.my-shop-chip-main{background:transparent;border:0;color:var(--ink);cursor:pointer;display:grid;flex:1;gap:2px;min-width:0;padding:7px 10px;text-align:left}.my-shop-chip-main:disabled{cursor:default}.my-shop-chip small{color:var(--ink-mute);font-size:11px}.my-shop-chip-remove{background:var(--paper-deep);border:0;border-left:1px solid var(--rule);color:var(--ink-mute);cursor:pointer;font-size:11px;font-weight:800;padding:0 8px}.my-shop-chip-remove:hover,.my-shop-chip-remove:focus-visible{color:var(--terracotta)}.my-shops-actions button,.store-save-toggle{background:var(--card);border:1px solid var(--rule);border-radius:999px;color:var(--forest);cursor:pointer;font-weight:800;min-height:34px;padding:7px 11px;white-space:nowrap}.my-shops-actions button:disabled{cursor:default;opacity:.55}.store-save-toggle.active{background:var(--forest);border-color:var(--forest);color:var(--paper-soft)}.live-data-note{align-items:center;background:var(--paper-soft);border:1px solid var(--rule);border-radius:12px;color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px}.live-data-note strong{color:var(--forest)}.live-data-note span{font-size:13px}.live-data-note a{color:var(--forest);font-size:13px;font-weight:800;text-decoration:none}.shop-finder-grid{display:grid;gap:18px;grid-template-columns:minmax(0,1.2fr) 360px}.shop-map{background:var(--paper-soft);border:1px solid var(--rule);border-radius:14px;min-height:520px;overflow:hidden;position:relative}.shop-map-canvas,.shop-map .leaflet-container{height:100%;min-height:520px;width:100%}.shop-map .leaflet-container{background:var(--paper-soft);color:var(--ink);font-family:inherit}.shop-map .leaflet-control-attribution{color:var(--ink-mute);font-size:10px}.shop-map .leaflet-control-zoom a{color:var(--forest)}.shop-empty-state{background:#fffdf5f0;border:1px solid var(--rule);border-radius:12px;display:grid;gap:6px;left:50%;max-width:min(420px,calc(100% - 40px));padding:18px;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);z-index:650}.shop-empty-state span,.price-empty span{color:var(--ink-soft);font-size:13px;line-height:1.45}.osm-shop-marker{background:#5d746c;border:3px solid var(--card);border-radius:999px;box-shadow:var(--shadow-1);display:block;height:20px;width:20px}.osm-shop-marker-host{background:transparent;border:0}.osm-shop-marker.carries{background:var(--terracotta)}.osm-shop-marker.likely{background:var(--goldenrod)}.osm-shop-marker.has-report{box-shadow:0 0 0 4px var(--goldenrod-tint),var(--shadow-1)}.osm-shop-marker.my-shop{box-shadow:0 0 0 5px #1f4d402e,var(--shadow-1)}.osm-shop-marker.cheapest,.osm-shop-marker.active{background:var(--forest)}.osm-shop-marker.active{box-shadow:0 0 0 5px var(--forest-tint),var(--shadow-1)}.shop-map .leaflet-tooltip.osm-shop-label{background:#fffdf5f0;border:1px solid var(--rule);border-radius:999px;box-shadow:var(--shadow-1);color:var(--ink);font-family:inherit;font-size:11px;font-weight:800;letter-spacing:0;max-width:180px;overflow:hidden;padding:3px 7px;text-overflow:ellipsis;white-space:nowrap}.shop-map .leaflet-tooltip-top.osm-shop-label:before{border-top-color:var(--rule)}.shop-map .leaflet-popup-content-wrapper{background:var(--card);border:1px solid var(--rule);border-radius:10px;box-shadow:var(--shadow-2);color:var(--ink)}.shop-map .leaflet-popup-tip{background:var(--card);border:1px solid var(--rule)}.shop-popup{display:grid;gap:4px;min-width:180px}.shop-popup strong{color:var(--forest);font-size:15px}.shop-popup span,.shop-popup small{color:var(--ink-soft);font-size:12px;line-height:1.35}.shop-popup a{color:var(--forest);font-size:12px;font-weight:800;text-decoration:none}.store-list{display:grid;gap:10px;max-height:620px;overflow:auto;padding-right:2px}.store-list-head{align-items:center;display:flex;justify-content:space-between}.store-card{background:var(--card);border:1px solid var(--rule);border-radius:12px;color:var(--ink);cursor:pointer;display:grid;gap:8px;padding:14px;text-align:left}.store-card.active{background:var(--forest-tint);border-color:var(--forest)}.store-card.saved{border-color:#1f4d4073}.store-card.empty{cursor:default}.store-card-top{align-items:start;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto}.store-card-title{background:transparent;border:0;color:var(--ink);cursor:pointer;display:grid;gap:3px;padding:0;text-align:left}.store-card-title:hover strong,.store-card-title:focus-visible strong{color:var(--forest)}.store-card-side{display:grid;gap:3px}.store-card small{color:var(--ink-mute);font-size:12px;font-style:normal}.store-card-side{align-items:end;grid-template-columns:1fr auto}.store-card-side em{color:var(--ink-mute);font-size:12px;font-style:normal}.store-card-side b{color:var(--forest);font-size:13px}.store-badges{display:flex;flex-wrap:wrap;gap:5px}.store-badges small{background:var(--paper-deep);color:var(--ink-soft)}.store-place-links{align-items:center;display:flex;flex-wrap:wrap;gap:7px}.store-place-links a,.store-place-links small{font-size:12px}.store-place-links a{color:var(--forest);font-weight:800;text-decoration:none}.store-deal-panel{background:#fffdf5a8;border:1px solid rgba(31,42,35,.12);border-radius:10px;cursor:default;display:grid;gap:8px;padding:10px}.store-deal-panel>span,.store-deal-panel>a{color:var(--ink-soft);font-size:13px;line-height:1.4}.store-deal-panel>a{color:var(--forest);font-weight:800;text-decoration:none}.store-deal-head{align-items:center;display:flex;gap:8px;justify-content:space-between}.store-deal-head small{background:var(--forest-tint);border-radius:999px;color:var(--forest);font-size:11px;font-weight:800;padding:4px 7px;text-transform:uppercase}.store-deal-list{display:grid;gap:7px}.store-deal-list a{align-items:center;background:var(--card);border:1px solid var(--rule-soft);border-radius:8px;color:var(--ink);display:grid;gap:8px;grid-template-columns:auto minmax(0,1fr);padding:7px;text-decoration:none}.store-deal-list img{border-radius:6px;height:44px;object-fit:cover;width:44px}.store-deal-list .offer-image-fallback{border-radius:6px;font-size:20px;height:44px;width:44px}.store-deal-list span{min-width:0}.store-deal-list strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.store-deal-list small{color:var(--ink-soft);display:block;font-size:12px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.price-panel{display:grid;gap:18px;grid-template-columns:minmax(260px,.55fr) minmax(0,1fr) auto;padding:20px}.price-panel h3{font-family:Georgia,Times New Roman,serif;font-size:28px;font-weight:400;margin:0}.price-table{border-collapse:collapse;width:100%}.price-table th{color:var(--ink-mute);font-size:11px;text-align:left;text-transform:uppercase}.price-table th,.price-table td{border-bottom:1px solid var(--rule-soft);padding:9px 8px}.price-table tr.active{background:var(--forest-tint)}.price-table button{background:transparent;border:0;color:var(--forest);cursor:pointer;font-weight:800;padding:0}.best-price{color:var(--terracotta);font-weight:800}.best-price span,.price-table td span{color:var(--ink-mute);font-weight:400;margin-left:4px}.price-empty{background:var(--paper-soft);border:1px dashed var(--rule);border-radius:10px;display:grid;gap:6px;padding:16px}.rich-inventory.inventory-view{background:transparent;border:0;border-radius:0;padding:0}.inventory-toolbar{align-items:end;display:grid;gap:12px;grid-template-columns:minmax(260px,1fr) minmax(200px,260px)}.inventory-toolbar label{color:var(--ink-mute);display:grid;font-size:11px;font-weight:800;gap:5px;text-transform:uppercase}.inventory-toolbar input,.inventory-toolbar select{background:var(--card);border:1px solid var(--rule);border-radius:9px;color:var(--ink);min-height:40px;padding:8px 10px}.rich-inventory .inventory-source{background:var(--paper-soft);border:1px solid var(--rule)}.rich-inventory .inventory-location{background:var(--card);border-color:var(--rule);border-radius:14px;box-shadow:var(--shadow-1);padding:16px}.inventory-location-head{align-items:center;border-bottom:1px solid var(--rule-soft);display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:10px}.inventory-location-head h3{margin:0}.inventory-location-head span{color:var(--ink-mute);font-size:12px;font-weight:800}.rich-inventory .inventory-location li{background:var(--paper-soft);grid-template-columns:auto minmax(0,1fr) auto}.rich-inventory .inventory-location li small{color:var(--ink-soft);display:block;font-size:12px;margin-top:3px}.rich-inventory .inventory-location li code{color:var(--ink-mute);display:block;font-size:11px;grid-column:auto;margin-top:5px}.inventory-row-side{align-items:end;display:grid;gap:5px;justify-items:end}.inventory-row-side button{background:transparent;border:0;color:var(--terracotta);cursor:pointer;font-size:12px;padding:0;text-align:right}.inventory-restock{display:grid;gap:14px;padding:18px}.inventory-restock h3{font-family:Georgia,Times New Roman,serif;font-size:28px;font-weight:400;margin:0}.restock-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.restock-grid article{background:var(--paper-soft);border:1px solid var(--rule-soft);border-radius:10px;display:grid;gap:4px;padding:12px}.restock-grid span,.restock-grid small,.inventory-restock p{color:var(--ink-soft);font-size:13px}@media(max-width:980px){.ops-header,.ops-actions,.shop-data-callout,.shop-data-actions,.manual-location-form{align-items:flex-start;flex-direction:column}.manual-location-form{display:flex;width:100%}.manual-location-field,.manual-location-form input{width:100%}.ops-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shopping-layout,.shop-finder-grid,.my-shops-panel,.price-panel,.settings-grid,.shop-highlights{grid-template-columns:1fr}.shopping-summary{position:static}.shop-filters,.inventory-toolbar{grid-template-columns:1fr}.shop-map,.shop-map-canvas,.shop-map .leaflet-container{min-height:420px}}@media(max-width:620px){.ops-stat-grid{grid-template-columns:1fr}.shop-highlights.active-area .offer-highlight-list a:first-child{grid-column:auto;grid-template-columns:1fr;grid-template-rows:auto 1fr}.shopping-item,.rich-inventory .inventory-location li{align-items:start;grid-template-columns:auto 1fr}.shopping-item-side,.inventory-row-side{grid-column:2;justify-items:start;text-align:left}}.map-view{display:grid;gap:18px;grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);padding:20px}.map-copy{grid-column:1 / -1;max-width:680px}.map-stage{display:grid;gap:12px;grid-row:span 2;min-width:0}.map-toolbar{align-items:center;background:#fff;border:1px solid #ded9cd;border-radius:8px;display:flex;flex-wrap:wrap;gap:10px;padding:10px}.platform-map-toolbar{display:grid;grid-template-columns:minmax(210px,1fr) minmax(160px,220px) auto auto auto minmax(150px,auto)}.platform-map-toolbar label{color:#6d756e;font-size:12px;font-weight:800;gap:5px;text-transform:uppercase}.platform-map-toolbar .search,.platform-map-toolbar .range-control,.platform-map-toolbar .flow-arrows-toggle,.platform-map-toolbar .direction-filter{align-items:center;display:grid}.platform-map-toolbar .flow-arrows-toggle{grid-template-columns:auto auto}.platform-map-toolbar input[type=search],.platform-map-toolbar select{background:#fffdf7;border:1px solid #cfc8ba;border-radius:8px;color:#26312a;min-height:36px;padding:7px 9px;width:100%}.map-toolbar button{background:#eef0ec;border:1px solid #cfc8ba;border-radius:8px;color:#26312a;cursor:pointer;min-height:36px;padding:7px 11px}.map-toolbar button:disabled{cursor:default;opacity:.58}.map-zoom-pill,.map-count-pill{background:#f8f7f2;border:1px solid #ebe7dd;border-radius:8px;color:#59635b;font-size:13px;font-weight:800;min-height:36px;padding:8px 10px}.graph{background:#fbfaf6;border:1px solid #ded9cd;border-radius:8px;cursor:grab;height:min(62vh,640px);min-height:420px;touch-action:none;-webkit-user-select:none;user-select:none;width:100%}.graph:active{cursor:grabbing}.platform-map-graph{overflow:hidden}.platform-map-graph svg{background:linear-gradient(rgba(47,93,80,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(47,93,80,.06) 1px,transparent 1px),#fbfaf6;background-size:34px 34px}.platform-map-graph .platform-graph__link{stroke:#c9c1b1;stroke-width:1.6}.platform-map-graph .platform-graph__link.semanticReference{stroke-dasharray:5 5}.platform-map-graph .platform-graph__link.is-focused{opacity:.94;stroke:#2f5d50}.platform-map-graph .platform-graph__node circle{filter:drop-shadow(0 3px 7px rgba(38,49,42,.16))}.platform-map-graph .platform-graph__node.is-focused circle{stroke:#26312a;stroke-width:4}.graph .edge{opacity:.62;pointer-events:none;transition:opacity .14s ease,stroke .14s ease,stroke-width .14s ease}.graph .edge.semanticReference{stroke:#c9c1b1;stroke-dasharray:5 5}.graph .edge.active{opacity:.95;stroke:#2f5d50;stroke-width:3}.graph .edge.dimmed{opacity:.12}.graph-node{cursor:grab;outline:none}.graph-node:active{cursor:grabbing}.graph .node{stroke:#fff;stroke-width:4;transition:filter .14s ease,opacity .14s ease,stroke .14s ease,stroke-width .14s ease}.graph .node.recipe{fill:#2f5d50}.graph .node.ingredient{fill:#d36c4d}.graph .node.tag{fill:#b58a48}.graph .node.meal-plan{fill:#547aa5}.graph-node.connected .node{stroke:#f0bd59;stroke-width:5}.graph-node.selected .node{filter:drop-shadow(0 8px 14px rgba(38,49,42,.28));stroke:#26312a;stroke-width:6}.graph-node.dimmed .node,.graph-node.dimmed .node-label{opacity:.28}.graph-node:focus-visible .node{stroke:#111714;stroke-width:6}.node-label{fill:#26312a;font-size:13px;font-weight:700;paint-order:stroke;pointer-events:none;stroke:#fbfaf6;stroke-width:4px;text-anchor:middle}.map-detail{align-self:start;border-left:1px solid #ebe7dd;max-height:calc(100vh - 136px);min-width:0;overflow:auto;padding:6px 0 6px 18px;position:sticky;top:118px}.map-detail-chrome{align-items:center;border-bottom:1px solid #ebe7dd;color:#6d756e;display:flex;font-size:12px;font-weight:800;gap:12px;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;text-transform:uppercase}.map-detail h2,.map-detail h3{font-size:22px;margin-bottom:10px}.map-detail h4{font-size:14px;margin:18px 0 10px}.map-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.map-meta span{background:#eef0ec;border-radius:8px;color:#59635b;font-size:13px;font-weight:700;padding:5px 8px}.map-detail code{display:inline-block;max-width:100%;overflow-wrap:anywhere}.source-path{color:#6d756e;display:block;margin:8px 0 12px;overflow-wrap:anywhere}.open-node{background:#2f5d50;border:1px solid #2f5d50;border-radius:8px;color:#fff;cursor:pointer;margin:12px 0;min-height:36px;padding:7px 11px}.map-node-summary{border-top:1px solid #ebe7dd;display:grid;gap:10px;margin-top:12px;padding-top:12px}.map-node-summary p{margin:0}.term-meta{display:grid;gap:8px;margin:14px 0}.term-meta div{border-top:1px solid #ebe7dd;display:grid;gap:4px;padding-top:8px}.term-meta dt{color:#6d756e;font-size:12px;font-weight:800;text-transform:uppercase}.term-meta dd{margin:0;overflow-wrap:anywhere}.details-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.details-actions .button,.term-chip{background:#eef0ec;border:1px solid #cfc8ba;border-radius:8px;color:#26312a;cursor:pointer;min-height:34px;padding:7px 10px}.details-actions .button.primary{background:#2f5d50;border-color:#2f5d50;color:#fff}.term-chip-list{display:flex;flex-wrap:wrap;gap:8px}.map-inventory-list li{background:#f8f7f2;border-radius:8px;display:grid;gap:5px;padding:9px 10px}.map-inventory-list code{font-size:12px}.map-link-list{display:grid;gap:8px;list-style:none;margin:0;padding:0}.map-link-list button{align-items:center;background:#f8f7f2;border:1px solid transparent;border-radius:8px;color:#26312a;cursor:pointer;display:flex;gap:10px;justify-content:space-between;min-height:38px;padding:8px 10px;text-align:left;width:100%}.map-link-list button:hover{border-color:#cfc8ba}.map-link-list small{color:#6d756e}.audit{max-width:780px;padding:20px}.gln-panel{background:#fff;border:1px solid #ded9cd;border-radius:8px;display:grid;gap:18px;max-width:980px;padding:20px}.gln-header,.gln-controls{align-items:end;display:flex;gap:14px;justify-content:space-between}.gln-header h2{margin-bottom:0}.gln-status{background:#eef0ec;border-radius:8px;color:#59635b;font-size:13px;font-weight:700;padding:7px 10px}.gln-status.connected,.gln-status.synced{background:#e7f0e7;color:#2f5d50}.gln-status.error{background:#fff1ec;color:#8f2f24}.gln-controls{align-items:end;background:#f8f7f2;border-radius:8px;flex-wrap:wrap;justify-content:flex-start;padding:14px}.gln-controls label{display:grid;gap:6px;min-width:min(100%,320px)}.gln-controls span{color:#6d756e;font-size:12px;font-weight:700;text-transform:uppercase}.gln-controls input{background:#fffdf7;border:1px solid #cfc8ba;border-radius:8px;color:#26312a;min-height:40px;padding:9px 11px;width:100%}.gln-controls button{background:#eef0ec;border:1px solid #cfc8ba;border-radius:8px;color:#26312a;cursor:pointer;min-height:40px;padding:9px 12px}.gln-controls button.primary{background:#2f5d50;border-color:#2f5d50;color:#fff}.gln-controls button:disabled{cursor:default;opacity:.64}.gln-message{background:#fbfaf6;border:1px solid #ebe7dd;border-radius:8px;padding:12px}.gln-message.error{border-color:#e4c6b8;color:#8f2f24}.gln-stat-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.gln-stat-grid div{background:#f8f7f2;border-radius:8px;padding:12px}.gln-stat-grid dt{color:#6d756e;font-size:13px}.gln-stat-grid dd{font-size:22px;font-weight:700;margin:4px 0 0}.gln-kinds{border-top:1px solid #ebe7dd;padding-top:16px}.gln-kinds div{display:flex;flex-wrap:wrap;gap:8px}.audit dl{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.audit dl div{background:#f8f7f2;border-radius:8px;padding:12px}.audit dt{color:#6d756e;font-size:13px}.audit dd{font-size:22px;font-weight:700;margin:4px 0 0}code{background:#ece6d9;border-radius:4px;padding:2px 5px}.status{background:#fff;border:1px solid #ded9cd;border-radius:8px;padding:20px}.status.error{border-color:#b95040;color:#8f2f24}@media(max-width:900px){.topbar,.home-hero,.home-grid,.recipe-hero,.detail-grid,.recipe-layout,.map-view,.gln-header{grid-template-columns:1fr}.topbar{align-items:start;display:grid}.tabs{justify-content:flex-start}.home-recipe-list button{align-items:start;display:grid}.home-recipe-list small{flex:initial}.recipe-list-panel{position:static}.entity-card.wide{grid-column:span 1}.schedule-list li{grid-template-columns:1fr}.source-toolbar{align-items:stretch;display:grid}.source-actions{justify-content:flex-start}.gln-header{align-items:start;display:grid}.platform-map-toolbar{grid-template-columns:1fr}.map-detail{border-left:0;border-top:1px solid #ebe7dd;max-height:none;overflow:visible;padding:18px 0 0;position:static}.source-field-grid,.ingredient-edit-row{grid-template-columns:1fr}}.account-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid rgba(46,93,52,.35);border-radius:999px;background:#fff;color:#1d2a1d;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;max-width:220px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account-pill--signin{background:#2e5d34;color:#fff;border-color:#2e5d34}.account-dot{width:8px;height:8px;border-radius:50%;background:#2e5d34;flex:0 0 auto}.account-panel{max-width:460px;margin:48px auto;padding:28px;background:#fff;border:1px solid rgba(46,93,52,.2);border-radius:16px;box-shadow:0 12px 32px #1d2a1d14}.account-panel h2{margin:0 0 8px}.account-panel .muted{color:#5d6b5d;font-size:.92rem}.account-summary-line{font-size:1rem}.account-mode{display:grid;grid-template-columns:1fr 1fr;margin:18px 0 14px;border:1px solid rgba(46,93,52,.3);border-radius:10px;overflow:hidden}.account-mode button{padding:9px 0;border:0;background:#fff;color:#1d2a1d;font:inherit;font-weight:600;cursor:pointer}.account-mode button.active{background:#2e5d34;color:#fff}.account-form{display:grid;gap:12px}.account-form label{display:grid;gap:5px;font-size:.8rem;font-weight:700;color:#5d6b5d}.account-form input{padding:10px 12px;border:1px solid rgba(46,93,52,.3);border-radius:10px;font:inherit;font-size:.95rem}.account-error{margin:0;color:#b42318;font-size:.85rem}.account-submit,.account-signout{padding:11px 16px;border:0;border-radius:10px;background:#2e5d34;color:#fff;font:inherit;font-weight:700;cursor:pointer}.account-submit:disabled{opacity:.5;cursor:default}.account-signout{margin-top:14px}.recipe-download{padding:4px 12px;border:1px solid rgba(46,93,52,.4);border-radius:999px;color:#2e5d34;font-size:.82rem;font-weight:700;text-decoration:none}.recipe-download:hover{background:#2e5d3414}
