:root{color:#0f172a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f7fb;font-family:Gabriela,serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{background:#f4f7fb}body{background:linear-gradient(#eef6ff 0%,#f7f9fd 100%);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}#root{min-height:100vh}.gabriela-regular{font-family:Gabriela,serif;font-style:normal;font-weight:400}h1,h2,p,ul,li{margin-top:0}.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;top:0;left:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:0 0}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{-webkit-transform-origin:0 0;width:1600px;height:1600px}.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{width:auto;padding:0;max-width:none!important;max-height:none!important}.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:#33b5e566}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;z-index:800;width:0;height:0}.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{z-index:800;pointer-events:visiblePainted;pointer-events:auto;position:relative}.leaflet-top,.leaflet-bottom{z-index:1000;pointer-events:none;position:absolute}.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;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{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{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{outline-offset:1px;background:#ddd}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{text-align:center;color:#000;background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-decoration:none;display:block}.leaflet-bar a,.leaflet-control-layers-toggle{background-position: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:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.leaflet-bar a.leaflet-disabled{cursor:default;color:#bbb;background-color:#f4f4f4}.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-right-radius:2px;border-bottom-left-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{text-indent:1px;font:700 18px Lucida Console,Monaco,monospace}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.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{color:#333;background:#fff;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{padding-right:5px;overflow:hidden scroll}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{font-size:1.08333em;display:block}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;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:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;padding:0 5px;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{width:1em;height:.6669em;vertical-align:baseline!important;display:inline!important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{white-space:nowrap;box-sizing:border-box;text-shadow:1px 1px #fff;background:#fffc;border:2px solid #777;border-top:none;padding:2px 5px 1px;line-height:1.1}.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{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{text-align:center;margin-bottom:20px;position:absolute}.leaflet-popup-content-wrapper{text-align:left;border-radius:12px;padding:1px}.leaflet-popup-content{min-height:1px;margin:13px 24px 13px 20px;font-size:1.08333em;line-height:1.3}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-top:-1px;margin-left:-20px;position:absolute;left:50%;overflow:hidden}.leaflet-popup-tip{pointer-events:auto;width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{text-align:center;color:#757575;background:0 0;border:none;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;text-decoration:none;position:absolute;top:0;right:0}.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{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";width:24px;filter:progid:DXImageTransform.Microsoft.Matrix(M11=.707107, M12=.707107, M21=-.707107, M22=.707107);margin:0 auto}.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{color:#222;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;background-color:#fff;border:1px solid #fff;border-radius:3px;padding:6px;position:absolute;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{pointer-events:none;content:"";background:0 0;border:6px solid #0000;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{margin-left:-6px;left:50%}.leaflet-tooltip-top:before{border-top-color:#fff;margin-bottom:-12px;bottom:0}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-top:-12px;margin-left:-6px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;margin-left:-12px;left:0}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.app-shell{--mobile-nav-height:calc(80px + env(safe-area-inset-bottom,0px));--bg:var(--page-bg,#f3f5f7);--bg-elevated:#fffc;--panel:var(--panel-bg,#fff);--panel-border:var(--panel-border,#dfe3ea);--panel-muted:var(--panel-alt,#f8fafc);--text:var(--text-color,#111827);--muted:var(--muted-text,#475569);--heading:var(--text-color,#111827);--primary:var(--theme-primary,#174f43);--primary-soft:var(--theme-primary-soft,#dfece9);--primary-strong:var(--theme-primary-strong,#123f36);--secondary:var(--theme-secondary,#c7b87a);--secondary-soft:var(--theme-secondary-soft,#f4efd9);--theme-accent:var(--theme-secondary,#c7b87a);--theme-accent-strong:var(--theme-secondary-strong,#a89149);--success-bg:#ecfdf5;--success-border:#6ee7b7;--success-text:#166534;--warning-bg:#fff7ed;--warning-border:#fdba74;--warning-text:#9a4d00;--error-bg:#ef44441f;--error-border:#ef444466;--error-text:#b91c1c;--shadow:#0f172a14;--field-bg:var(--field-bg,#fff);--field-border:var(--field-border,#cbd5e1);--button-secondary-bg:var(--button-secondary-bg,#f1f5f9);--button-secondary-text:var(--button-secondary-text,#111827);--nav-active-bg:var(--nav-active-bg,#dfece9);--nav-active-text:var(--nav-active-text,#123f36);--sidebar-bg:var(--sidebar-bg,#fff);--sidebar-text:var(--sidebar-text,#111827);--button-primary-bg:var(--button-primary-bg,var(--primary));--button-primary-text:var(--button-primary-text,var(--theme-primary-text,#fff));--button-primary-hover:var(--button-primary-hover,var(--primary-strong));--effect-soft:#0f172a0a;background:var(--bg);color:var(--text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;box-sizing:border-box;gap:24px;min-height:100vh;padding:20px;display:flex}.app-shell.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--page-bg,#0b1220);--bg-elevated:#111827eb;--panel:var(--panel-bg,#111827);--panel-border:var(--panel-border,#2e3b4d);--panel-muted:var(--panel-alt,#182335);--text:var(--text-color,#f8fafc);--muted:var(--muted-text,#cbd5e1);--heading:var(--text-color,#f8fafc);--primary-soft:#ffffff14;--success-bg:#10b9811f;--success-border:#10b98173;--success-text:#d1fae5;--warning-bg:#fb923c1f;--warning-border:#fb923c80;--warning-text:#fed7aa;--error-bg:#ef44441f;--error-border:#ef444473;--error-text:#fecaca;--shadow:#020617a6;--field-bg:var(--field-bg,#0f172a);--field-border:var(--field-border,#42516a);--button-secondary-bg:var(--button-secondary-bg,#1f2937);--button-secondary-text:var(--button-secondary-text,#e2e8f0);--sidebar-bg:var(--sidebar-bg,#111827);--sidebar-text:var(--sidebar-text,#f8fafc);--nav-active-bg:var(--nav-active-bg,#ffffff1f);--nav-active-text:var(--nav-active-text,#f8fafc);--button-primary-bg:var(--button-primary-bg,var(--primary));--button-primary-text:var(--button-primary-text,var(--theme-primary-text,#fff));--button-primary-hover:var(--button-primary-hover,var(--primary-strong))}.sidebar{background:var(--sidebar-bg,#ffffffb8);border:1px solid var(--panel-border);width:260px;box-shadow:0 12px 30px var(--shadow);color:var(--sidebar-text,var(--text));border-radius:22px;flex-direction:column;gap:18px;padding:24px 18px;display:flex}.brand-block{border-bottom:1px solid #ffffff2e;padding:10px 6px 18px}.brand-block h1{color:var(--sidebar-text,var(--heading));margin:0;font-size:1.4rem;line-height:1.2}.nav-link,.bottom-nav-link{color:var(--sidebar-text,var(--muted));border:1px solid #0000;border-radius:12px;justify-content:flex-start;align-items:center;padding:12px 14px;font-weight:700;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s,transform .15s;display:flex}.nav-link:hover,.bottom-nav-link:hover,.nav-link:focus-visible,.bottom-nav-link:focus-visible{background:#ffffff14;border-color:#ffffff24;outline:none}.nav-link.active,.bottom-nav-link.active{background:var(--nav-active-bg);color:var(--nav-active-text);border-color:color-mix(in srgb, var(--nav-active-bg) 70%, transparent)}.content-shell{flex:1;min-width:0}.page-content{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.panel{background:var(--panel);border:1px solid var(--panel-border);min-width:0;box-shadow:0 12px 30px var(--shadow);border-radius:18px;padding:22px}.dashboard-panel{min-height:300px}.sub-panel{background:var(--panel-muted);padding:18px}.panel-header-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.panel h2,.panel h3{color:var(--heading);margin:0}.eyebrow{color:var(--theme-accent-strong,#7c9cff);letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px;font-size:.74rem;font-weight:700}.subtle-eyebrow{margin-bottom:6px}.topbar{min-height:120px;box-shadow:0 12px 30px var(--shadow);padding:0;background-image:linear-gradient(90deg,#081f38ad 0%,#081f3833 45%,#081f3814 100%),url(/images/Sunny%20campus%20mascot%20planner%20banner.png);background-position:83% 16%;background-repeat:no-repeat;background-size:100% 100%,92%;border-bottom:none;border-radius:18px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:0;padding-inline:20px;display:flex;position:relative;overflow:hidden}.topbar>div{z-index:1;align-items:center;min-height:100%;display:flex;position:relative}.topbar h2{color:#f8fafc;text-shadow:0 2px 14px #0f172a61;margin:0;font-size:clamp(2.1rem,4vw,3rem);line-height:1}.mobile-theme-toggle{z-index:1;display:none;position:relative}.theme-toggle{margin-top:auto}.planner-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}label{width:100%;min-width:0;color:var(--text);margin-bottom:14px;font-size:.9rem;font-weight:600;display:block}input,textarea,select{border:1px solid var(--field-border);background:var(--field-bg);width:100%;min-width:0;max-width:100%;color:var(--text);font:inherit;box-sizing:border-box;border-radius:10px;margin-top:8px;padding:10px 12px;transition:border-color .15s,box-shadow .15s,background-color .15s}input[type=date],input[type=time]{appearance:none;inline-size:100%;min-inline-size:0;max-inline-size:100%;text-align:left;min-height:46px;display:block}input::-webkit-date-and-time-value{text-align:left;min-height:1.5em}input::-webkit-datetime-edit{min-width:0;padding:0}input:focus,textarea:focus,select:focus,button:focus-visible,.nav-link:focus-visible,.bottom-nav-link:focus-visible{outline:2px solid var(--theme-accent-strong,#86a4ff);outline-offset:2px;border-color:var(--theme-accent-strong,#86a4ff);box-shadow:0 0 0 3px color-mix(in srgb, var(--theme-accent) 22%, transparent)}textarea{resize:vertical;min-height:120px}button{background:var(--button-primary-bg);color:var(--button-primary-text);font:inherit;cursor:pointer;border:none;border-radius:10px;padding:10px 14px;font-weight:600;transition:background-color .15s,color .15s,border-color .15s,opacity .15s,transform .15s}button:hover:not(:disabled){background:var(--button-primary-hover)}button:disabled{opacity:.6;cursor:not-allowed}.secondary-button{background:var(--button-secondary-bg);color:var(--button-secondary-text);border:1px solid var(--field-border)}.secondary-button:hover:not(:disabled){filter:brightness(.98)}.study-days{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0 18px;display:grid}.day{background:var(--panel-muted);border:1px solid var(--panel-border);color:var(--text)}.day:hover:not(:disabled){background:var(--panel-muted);color:var(--text)}.day.active,.day.active:hover:not(:disabled){background:var(--primary-strong);border-color:color-mix(in srgb, var(--primary) 40%, var(--panel-border));color:var(--button-primary-text)}.day-check{margin-inline-end:5px}.time-row,.work-input-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.work-input-group{margin-bottom:16px}.field-label{color:var(--text);margin-bottom:4px;font-size:.9rem;font-weight:600;display:block}.field-hint{color:var(--muted);margin:8px 0 0;font-size:.8rem}.validation-message{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);border-radius:10px;margin-top:10px;padding:10px 12px;font-size:.82rem;font-weight:700}.commitment-form{flex-direction:column;gap:8px;display:flex}.commitment-list,.session-list,.milestone-list,.mini-list-stack{flex-direction:column;gap:12px;margin:18px 0 0;padding:0;list-style:none;display:flex}.commitment-item,.session-item,.milestone-card{background:var(--panel-muted);border:1px solid var(--panel-border);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.commitment-item strong,.milestone-card strong,.session-meta strong,.mini-list strong{color:var(--heading);margin-bottom:4px;display:block}.commitment-item p,.milestone-card p,.session-meta span,.mini-list p,.mini-list-stack li span{color:var(--muted);margin:0;font-size:.9rem}.session-item{grid-template-columns:minmax(0,1fr);align-items:start;gap:14px;display:grid}.session-meta{overflow-wrap:anywhere;min-width:0}.session-meta .session-current-status{color:var(--text);margin-top:8px;font-weight:700;display:block}.session-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;display:grid}.session-controls .status{border:1px solid var(--field-border);background:var(--button-secondary-bg);min-width:0;color:var(--button-secondary-text);padding:10px 6px}.session-controls .status:hover:not(:disabled){background:var(--panel)}.session-controls .status.active,.session-controls .status.active:hover:not(:disabled){background:var(--primary-strong);color:var(--button-primary-text);border-color:var(--primary-strong);box-shadow:inset 0 0 0 1px}.session-controls .status.active.warn,.session-controls .status.active.warn:hover:not(:disabled){background:var(--warning-bg);color:var(--warning-text);border-color:var(--warning-border)}@media (width<=380px){.session-controls{grid-template-columns:1fr}}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px;display:grid}.compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-card{background:var(--panel-muted);border:1px solid var(--panel-border);border-radius:12px;flex-direction:column;gap:4px;padding:12px;display:flex}.summary-card.warning{background:var(--warning-bg);border-color:var(--warning-border)}.warning-box{background:var(--warning-bg);border:1px solid var(--warning-border);color:var(--warning-text)}.ok-box{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success-text)}.appearance-block{background:var(--panel-muted);border:1px solid var(--panel-border);border-radius:14px;flex-direction:column;gap:10px;margin:0 0 18px;padding:16px;display:flex}.theme-selector-wrap{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.theme-preview{background:var(--panel);border:1px solid var(--panel-border);border-radius:999px;align-items:center;gap:8px;padding:6px 8px;display:flex}.theme-preview span{border:2px solid #ffffffb3;border-radius:50%;width:20px;height:20px;display:inline-block;box-shadow:inset 0 0 0 1px #0f172a26}.bottom-nav{border-top:1px solid var(--panel-border);padding:8px 8px calc(8px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:30;box-sizing:border-box;background:#fffffff5;display:none;position:fixed;bottom:0;left:0;right:0}.app-shell.dark .bottom-nav{background:#0f172af5}.bottom-nav-link{letter-spacing:.01em;min-height:52px;color:var(--muted);background:0 0;flex-direction:column;flex:1;justify-content:center;gap:4px;padding:6px 8px;font-size:.7rem}.bottom-nav-link.active{background:var(--nav-active-bg);color:var(--nav-active-text)}.bottom-nav-icon{font-size:1.15rem}.desktop-sidebar{display:flex}.mobile-page-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.mobile-actions-stack{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.mobile-link-card{border:1px solid var(--panel-border);background:var(--panel-muted);min-width:0;color:var(--text);border-radius:12px;align-items:flex-start;gap:12px;padding:16px;text-decoration:none;display:flex}.mobile-link-card>div{overflow-wrap:anywhere;min-width:0}.mobile-link-card strong,.mobile-link-card small{display:block}.mobile-link-card small{color:var(--muted);margin-top:4px;line-height:1.5}.mobile-link-card .nav-icon{flex:0 0 32px;font-size:1.4rem}.mobile-link-card:hover{background:var(--primary-soft)}.mobile-link-card:focus-visible{outline:3px solid var(--theme-accent-strong);outline-offset:3px}@media (width<=900px){.app-shell{padding:12px 12px calc(16px + var(--mobile-nav-height));display:block}.desktop-sidebar{display:none}.bottom-nav{background:#fffffff5;gap:8px;display:flex;position:fixed;bottom:0;left:0;right:0}.content-shell{width:100%}.page-content,.dashboard-grid,.planner-grid,.summary-grid,.time-row,.work-input-row,.stepper,.calendar-week-grid,.compact-fields,.mobile-actions-stack{grid-template-columns:1fr}.page-content{flex-direction:column;gap:16px;display:flex}.panel{padding:18px 16px}.topbar{background-position:82% 45%;flex-direction:row;justify-content:space-between;align-items:center;gap:12px;min-height:90px;margin-bottom:0;padding-inline:16px}.topbar>div{flex:auto;min-width:0}.topbar h2{overflow-wrap:anywhere;font-size:clamp(1.5rem,6vw,2.5rem);line-height:1.2}.study-days{grid-template-columns:repeat(3,minmax(0,1fr))}.day{min-width:0;padding-inline:6px}.mobile-theme-toggle{flex:none;margin-left:auto;display:inline-flex}.mobile-page-header{flex-direction:column;align-items:flex-start}.file-upload-box{flex-direction:column;align-items:stretch}.calendar-page{grid-template-columns:1fr}.calendar-panel,.calendar-detail-panel{min-height:auto}.calendar-topbar-row{flex-direction:column;align-items:flex-start}.calendar-view-toggle{justify-content:flex-start;width:100%}.calendar-week-strip{margin-left:-4px;margin-right:-4px}.calendar-month-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-week-grid,.compact-fields{grid-template-columns:1fr}.bottom-nav-link{color:var(--muted)}.bottom-nav-link.active{color:var(--nav-active-text)}.calendar-date,.calendar-item,.detail-item-button,.week-strip-day,.agenda-day-header,.calendar-day-header{color:var(--text);border:1px solid var(--panel-border);background:0 0}.calendar-item{text-align:left;grid-template-columns:74px minmax(0,1fr);gap:8px 10px;width:100%;padding:10px 12px;display:grid}.calendar-item-time{background:var(--panel-muted);min-height:40px;color:var(--muted);border-radius:8px;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;line-height:1.2;display:flex}.calendar-item-main,.detail-item-main{flex-direction:column;gap:6px;min-width:0;display:flex}.calendar-item strong,.detail-item-button strong{color:var(--heading);font-size:1rem;line-height:1.3}.calendar-week-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;width:100%;padding-bottom:0;display:grid;overflow:visible}.week-strip-day{background:var(--panel-muted);min-width:0;min-height:72px;color:var(--text);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:8px 4px;display:flex}.week-strip-day span{color:var(--muted);font-size:.68rem}.week-strip-day strong{font-size:1rem;line-height:1.2}.week-strip-day.selected{background:var(--primary-soft);border-color:color-mix(in srgb, var(--primary) 35%, var(--panel-border));color:var(--primary-strong)}.calendar-day-column{background:var(--panel-muted);border:1px solid var(--panel-border);border-radius:14px}.calendar-day-header{border:none;border-bottom:1px solid var(--panel-border);background:0 0;border-radius:10px 10px 0 0;justify-content:space-between;align-items:center;width:100%;padding:8px 10px;display:flex}.agenda-day{background:var(--panel-muted);border:1px solid var(--panel-border);padding:10px}.agenda-day-header{background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:4px 4px 10px;display:flex}.agenda-items{flex-direction:column;gap:8px;display:flex}.calendar-detail-panel{overflow:hidden}.calendar-detail-head{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.calendar-detail-meta{flex-wrap:wrap;gap:8px 12px;margin-bottom:0;display:flex}}@media (width<=560px){.summary-grid,.planner-grid,.compact-grid,.time-row,.work-input-row,.theme-selector-wrap,.mobile-actions-stack{grid-template-columns:1fr}.panel-header-row,.calendar-header-row,.calendar-topbar-row,.mobile-page-header{flex-wrap:wrap}.calendar-actions,.calendar-view-toggle,.calendar-editor-actions,.calendar-detail-actions,.import-actions,.session-controls{flex-wrap:wrap;justify-content:flex-start;width:100%}}.primary-button,.primary-link-button,.primary-import,.mobile-primary-action{background:var(--button-primary-bg);color:var(--button-primary-text);border:1px solid #0000}.primary-button:hover:not(:disabled),.primary-link-button:hover:not(:disabled),.primary-import:hover:not(:disabled),.mobile-primary-action:hover:not(:disabled){background:var(--button-primary-hover)}button,input,textarea,select{font:inherit;font-size:16px}button{min-height:44px}.calendar-date,.calendar-day-header,.week-strip-day,.calendar-item,.detail-item-button,.agenda-day-header,.calendar-item strong,.detail-item-button strong{border-color:var(--panel-border);color:var(--text);background:0 0}.calendar-date:hover:not(:disabled),.calendar-day-header:hover:not(:disabled),.week-strip-day:hover:not(:disabled),.calendar-item:hover:not(:disabled),.detail-item-button:hover:not(:disabled),.agenda-day-header:hover:not(:disabled){background:var(--panel-muted)}.calendar-date,.calendar-item,.detail-item-button,.week-strip-day,.agenda-day-header,.calendar-day-header{min-width:0;box-shadow:none}.calendar-week-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;width:100%;display:grid;overflow:visible}.calendar-item{text-align:left;background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:8px 10px;width:100%;padding:10px 12px;display:grid}.calendar-item-time{background:var(--panel-muted);min-height:40px;color:var(--muted);border-radius:8px;justify-content:center;align-items:center;padding:6px 8px;font-size:.8rem;font-weight:700;line-height:1.2;display:inline-flex}.calendar-item-main,.detail-item-main{flex-direction:column;gap:6px;min-width:0;display:flex}.calendar-item strong,.detail-item-button strong{color:var(--heading);font-size:1rem;line-height:1.3}.calendar-pill{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;align-self:flex-start;align-items:center;padding:4px 8px;font-size:.68rem;font-weight:700;line-height:1.2;display:inline-flex}.calendar-bubble,.calendar-more,.calendar-more-row{border-radius:999px;align-items:center;font-size:.68rem;font-weight:700;line-height:1.2;display:inline-flex}.calendar-day-column{border:1px solid var(--panel-border);background:var(--panel-muted);border-radius:14px;flex-direction:column;gap:8px;min-height:240px;padding:8px;display:flex}.calendar-day-header{width:100%;color:var(--heading);background:0 0;border:1px solid #0000;border-radius:10px;justify-content:space-between;align-items:center;padding:6px 8px;display:flex}.calendar-day-header span{color:var(--muted);font-size:.72rem}.calendar-day-header strong{font-size:.8rem}.calendar-item.selected,.detail-item-button.selected,.calendar-date.selected,.agenda-day.selected,.week-strip-day.selected{border-color:color-mix(in srgb, var(--primary) 38%, var(--panel-border));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 15%, transparent)}.today{background:var(--primary-soft)}.calendar-detail-panel{flex-direction:column;gap:10px;display:flex}.calendar-detail-item,.active-detail{border:1px solid var(--panel-border);background:var(--panel-muted);border-radius:12px;padding:14px}.calendar-detail-head{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.calendar-detail-head strong{color:var(--heading);font-size:1rem}.calendar-detail-meta{color:var(--muted);flex-wrap:wrap;gap:8px 12px;margin-bottom:12px;font-size:.82rem;display:flex}.detail-item-button{border:1px solid var(--panel-border);text-align:left;background:var(--panel);width:100%;color:var(--text);border-radius:12px;grid-template-columns:70px minmax(0,1fr);align-items:center;gap:8px 12px;padding:10px 12px;display:grid}.detail-item-button .calendar-item-time{min-height:38px}.bottom-nav-link{text-align:center;white-space:normal;min-width:0}.today-header-banner{background-image:linear-gradient(90deg,#081f389e 0%,#081f3829 48%,#081f381f 100%),url(/images/Sunny%20campus%20mascot%20planner%20banner.png);background-position:75%;background-repeat:no-repeat;background-size:cover;border-radius:16px 16px 0 0;align-items:center;min-height:120px;margin:-18px -16px 16px;padding:18px 18px 16px;display:flex;position:relative;overflow:hidden}.today-header-copy{z-index:1;flex-direction:column;justify-content:center;gap:2px;max-width:min(60%,420px);display:flex;position:relative}.today-header-copy .eyebrow,.today-header-copy h2{color:#f8fafc;text-shadow:0 2px 10px #0f172a59}.today-header-copy .eyebrow{letter-spacing:.08em;margin:0}.today-header-copy h2{margin:0;font-size:clamp(1.8rem,4vw,3rem);line-height:.95}@media (width<=900px){.today-header-banner{background-position:82% 46%;min-height:100px;margin:-18px -16px 14px;padding:14px 16px}.today-header-copy{max-width:68%}.today-header-copy h2{font-size:clamp(1.8rem,8vw,2.8rem)}}@media (width<=430px){.today-header-banner{background-position:82% 46%;min-height:92px}.today-header-copy{max-width:72%}}.campus-page{grid-template-columns:minmax(0,1.85fr) minmax(320px,.8fr);gap:20px;display:grid}.map-heavy-page{align-items:start}.campus-panel,.campus-detail-panel{min-height:100%}.campus-map-main{flex-direction:column;display:flex}.campus-toolbar{flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:12px;display:flex}.campus-toolbar>.secondary-button{align-self:stretch}.campus-status-chip{border:1px solid var(--panel-border);background:var(--panel-muted);min-height:44px;color:var(--muted);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:0 12px;font-size:.82rem;font-weight:700;display:inline-flex}.campus-search,.campus-start-picker,.campus-room-box{color:var(--text);flex-direction:column;gap:8px;font-size:.9rem;font-weight:600;display:flex}.campus-search{flex:260px;min-width:220px}.active-filter{border-color:color-mix(in srgb, var(--primary) 50%, var(--panel-border));background:var(--primary-soft);color:var(--primary-strong)}.campus-map-canvas{border:1px solid var(--panel-border);background:var(--panel-muted);isolation:isolate;border-radius:14px;min-height:480px;margin:10px 0 14px;overflow:hidden}.campus-map-canvas .leaflet-container{width:100%;height:100%;min-height:480px}.campus-map-touch-controls{display:none}@media (pointer:coarse){.campus-map-touch-controls{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.campus-map-touch-controls p{color:var(--muted);margin:0;font-size:.82rem}.campus-map-canvas .leaflet-container{touch-action:pan-y pinch-zoom}.campus-map-canvas.map-interactive .leaflet-container{touch-action:none}}.campus-map-canvas .leaflet-control-container{z-index:4}.campus-map-canvas .leaflet-popup-content p{margin:8px 0 0}.campus-detail-meta{color:var(--muted);flex-wrap:wrap;gap:8px 12px;margin:10px 0 12px;font-size:.82rem;display:flex}.campus-description{color:var(--text);margin:0 0 14px;line-height:1.6}.campus-route-box{border:1px solid var(--panel-border);background:var(--panel-muted);border-radius:12px;margin-bottom:16px;padding:12px 14px}.campus-route-box strong{color:var(--heading);margin-bottom:6px;display:block}.campus-route-box p,.campus-route-box small{color:var(--muted);margin:0;line-height:1.5}.campus-mobile-details{border:1px solid var(--panel-border);background:var(--panel-muted);border-radius:12px;padding:10px}.campus-mobile-details summary{cursor:pointer;color:var(--heading);font-weight:700;list-style:none}.campus-mobile-details summary::-webkit-details-marker{display:none}.campus-detail-wrap{margin-top:12px}.campus-actions{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.campus-room-box{margin-top:8px}.campus-directory-list{flex-direction:column;gap:10px;max-height:280px;padding-right:4px;display:flex;overflow:auto}.campus-directory-item{background:var(--panel-muted);border:1px solid var(--panel-border);border-radius:12px;padding:10px 12px}.campus-directory-item.active{background:var(--primary-soft);border-color:color-mix(in srgb, var(--primary) 35%, var(--panel-border))}.campus-directory-name{text-align:left;width:100%;color:var(--text);background:0 0;border:none;min-height:24px;padding:0}.campus-directory-meta{color:var(--muted);flex-wrap:wrap;gap:6px 10px;margin-top:6px;font-size:.82rem;display:flex}.campus-search-results{flex-direction:column;gap:8px;margin:16px 0 0;padding:0;list-style:none;display:flex}.campus-result{text-align:left;background:var(--panel-muted);width:100%;color:var(--text);border:1px solid var(--panel-border);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.campus-result.selected{background:var(--primary-soft);border-color:color-mix(in srgb, var(--primary) 35%, var(--panel-border));color:var(--primary-strong)}.checkoff-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.checkoff-item{border:1px solid var(--panel-border);background:var(--panel);border-radius:12px;padding:10px 12px}.checkoff-item label{align-items:center;gap:10px;margin:0;display:flex}.checkoff-item input[type=checkbox]{width:18px;height:18px;margin:0}.checkoff-item span{flex-direction:column;gap:2px;display:flex}.checkoff-item small{color:var(--muted)}.checkoff-item.done{background:var(--primary-soft)}.checkoff-item.done strong{opacity:.75;text-decoration:line-through}.campus-result p{color:var(--muted);margin:6px 0 0;font-size:.86rem}@media (width<=900px){.campus-page{grid-template-columns:1fr}.campus-map-canvas,.campus-map-canvas .leaflet-container{min-height:360px}.campus-directory-list{max-height:220px}}@media (width<=560px){.campus-toolbar{gap:10px}.campus-map-canvas,.campus-map-canvas .leaflet-container{min-height:300px}.campus-actions{grid-template-columns:1fr;display:grid}.campus-actions button,.campus-toolbar input,.campus-toolbar select,.campus-room-box input,.campus-result{min-height:46px}.campus-mobile-details{margin-bottom:calc(10px + env(safe-area-inset-bottom))}}.workflow-help{color:var(--muted);margin:12px 0 18px;line-height:1.65}.getting-started{border-inline-start:4px solid var(--theme-primary,#18453b);grid-column:1/-1}.getting-started h2{text-wrap:balance;max-width:32ch;font-size:clamp(1.5rem,2.8vw,2.15rem);line-height:1.2}.getting-started-description{max-width:65ch;color:var(--muted);margin:12px 0 0;line-height:1.65}.getting-started-actions{flex-wrap:wrap;gap:10px;margin:20px 0;display:flex}.getting-started-primary,.getting-started-secondary{border:1px solid var(--panel-border);box-sizing:border-box;text-align:center;border-radius:10px;justify-content:center;align-items:center;min-height:46px;padding:10px 18px;font-weight:700;line-height:1.5;text-decoration:none;display:inline-flex}.getting-started-primary{background:var(--theme-primary,#18453b);border-color:var(--theme-primary,#18453b);color:var(--theme-primary-text,#fff)}.getting-started-secondary{background:var(--panel-muted);color:var(--text)}.getting-started-primary:hover,.getting-started-secondary:hover{filter:brightness(1.08)}.getting-started a:focus-visible{outline:3px solid var(--theme-accent-strong,#a89149);outline-offset:3px}.getting-started-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.getting-started-steps li{min-width:0}.getting-started-steps a{border:1px solid var(--panel-border);box-sizing:border-box;background:var(--panel-muted);height:100%;color:var(--text);border-radius:12px;align-items:flex-start;gap:12px;padding:16px;line-height:1.5;text-decoration:none;display:flex}.getting-started-steps a:hover{border-color:var(--theme-primary,#18453b)}.getting-started-number{background:var(--primary-soft);height:32px;color:var(--text);border-radius:50%;flex:0 0 32px;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.getting-started-steps strong{margin-bottom:4px;display:block}.getting-started-step-description{color:var(--muted);font-size:.9rem;display:block}.getting-started-note{color:var(--muted);margin:16px 0 0;font-size:.9rem;line-height:1.6}@media (width<=900px){.getting-started-steps{grid-template-columns:1fr}.getting-started-steps a{padding:12px}}@media (width<=560px){.getting-started-actions{flex-direction:column}.getting-started-primary,.getting-started-secondary{width:100%}}.calendar-cleanup{grid-column:1/-1}.calendar-cleanup details{margin-block:1rem}.calendar-cleanup label{overflow-wrap:anywhere;gap:.5rem;margin-block:1rem;display:grid}.calendar-cleanup-actions{flex-wrap:wrap;gap:.75rem;display:flex}.calendar-clear-dialog{box-sizing:border-box;background:var(--panel-bg);width:min(34rem,100vw - 2rem);max-height:calc(100dvh - 2rem);color:var(--text-color);border:1px solid var(--panel-border);overflow-wrap:anywhere;border-radius:1rem;padding:1.25rem;overflow-y:auto}.calendar-clear-dialog::backdrop{background:#000000a6}.calendar-removal-preview{max-height:12rem;padding-inline-start:1.25rem;overflow-y:auto}.calendar-detail-list{gap:10px;padding:0;list-style:none;display:grid}.calendar-detail-list .calendar-detail-item{align-items:center;gap:8px;min-width:0;padding:8px;display:flex}.calendar-check-target{cursor:pointer;flex:0 0 44px;justify-content:center;align-items:center;min-height:44px;margin:0;display:flex}.calendar-check-target input[type=checkbox]{appearance:auto;width:24px;height:24px;accent-color:var(--theme-primary);cursor:pointer;margin:0}.calendar-check-target input:focus-visible{outline:3px solid var(--theme-secondary);outline-offset:3px}.calendar-detail-item .detail-item-button{flex:1;min-width:0}.calendar-detail-item.completed .detail-item-main strong{opacity:.7;text-decoration:line-through}.calendar-completed-label{font-size:.8rem;font-weight:600}#appearance-toggle{color:#111827;background:#f1f5f9;border:1px solid #94a3b8}.app-shell.dark #appearance-toggle{color:#f8fafc;background:#1f2937}#appearance-toggle:hover{color:#111827;background:#e2e8f0}.calendar-view-controls,.calendar-period-controls{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.calendar-view-controls button[aria-pressed=true]{background:var(--text);color:var(--panel)}.calendar-jump{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.calendar-jump input{width:auto;max-width:100%}.calendar-date-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:16px;display:grid}.calendar-weekday{text-align:center;font-size:.75rem}.calendar-date-grid .calendar-date-cell{flex-direction:column;align-items:center;gap:4px;min-width:0;min-height:62px;padding:6px 2px;display:flex}.calendar-date-cell small{font-size:.65rem}.calendar-date-cell.is-today{outline:2px solid var(--text);outline-offset:-2px}.intuitive-planner{grid-template-columns:minmax(0,1fr);gap:20px;display:grid}.intuitive-planner>.panel{min-width:0}.intuitive-planner h3{margin-top:24px}.planner-buffer-options,.planner-preview-actions{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.planner-buffer-options button[aria-pressed=true]{background:var(--text);color:var(--panel)}.planner-review-action{margin:20px 0 12px}.planner-review-action button{width:100%}.planner-preview{scroll-margin-top:20px}.planner-deadline-path{gap:12px;padding:0;list-style:none;display:grid}.planner-deadline-path li{border-left:4px solid var(--primary);background:var(--panel-muted);border-radius:8px;padding:12px 16px}.planner-deadline-path span,.planner-deadline-path strong{overflow-wrap:anywhere;display:block}.planner-deadline-path span{color:var(--muted);margin-bottom:4px}.planner-session-timeline{padding-left:24px}.planner-session-timeline li{border-bottom:1px solid var(--field-border);padding:14px 4px}.planner-session-timeline span,.planner-session-timeline small{overflow-wrap:anywhere;margin-top:6px;display:block}.planner-session-check{align-items:center;gap:8px;width:fit-content;min-height:44px;display:flex}.planner-session-check input{width:22px;height:22px}.planner-location{margin-top:20px}.intuitive-planner summary{cursor:pointer;padding:12px 0}.page-content.calendar-page,.page-content.intuitive-planner{grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.intuitive-planner{width:100%;max-width:1280px;margin-inline:auto}.planner-setup-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:18px;margin:24px 0 12px;display:grid}.planner-step{border:1px solid var(--field-border);background:var(--panel-muted);border-radius:12px;min-width:0;margin:0;padding:16px}.planner-step legend{padding:0 6px;font-size:1rem;font-weight:700}.planner-step .work-input-group{margin-top:0}.planner-step .time-row,.planner-step .work-input-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.planner-step .study-days{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;display:grid}.planner-step .study-days button{min-width:0;padding:8px 2px}.planner-step .planner-buffer-options button{flex:auto;padding:8px;font-size:.8rem}.planner-review-action{max-width:320px}.planner-deadline-path{grid-template-columns:repeat(3,minmax(0,1fr))}.planner-session-timeline li{justify-content:space-between;align-items:center;gap:16px;display:flex}.planner-session-check{flex-shrink:0}.calendar-toolbar{flex-wrap:wrap;align-items:center;gap:12px 20px;margin-bottom:12px;display:flex}.calendar-toolbar>div:first-child{margin-right:auto}.calendar-toolbar .eyebrow{margin:0 0 4px}.calendar-toolbar h2{font-size:1.4rem}.calendar-toolbar .calendar-view-controls,.calendar-toolbar .calendar-period-controls{gap:4px;margin:0}.calendar-toolbar button{padding:8px 12px;font-size:.9rem}.calendar-toolbar .calendar-jump{gap:6px;font-size:.8rem}.calendar-toolbar .calendar-jump input{padding:8px;font-size:.85rem}.calendar-legend{flex-wrap:wrap;gap:8px;margin:12px 0;font-size:.8rem;display:flex}.calendar-event-label{color:var(--text);background:var(--panel-muted);border-left:3px solid;border-radius:4px;padding:4px 10px}.calendar-event-label.assignment{border-color:#d97706}.calendar-event-label.study{border-color:#2563eb}.calendar-event-label.commitment{border-color:#7c3aed}.calendar-date-grid{border:1px solid var(--field-border);border-radius:10px;gap:0;overflow:hidden}.calendar-weekday{background:var(--panel-muted);padding:10px 2px;font-weight:600}.calendar-date-grid>span:not(.calendar-weekday){background:var(--panel-muted);border-top:1px solid var(--field-border)}.calendar-date-grid .calendar-date-cell{border-top:1px solid var(--field-border);border-right:1px solid var(--field-border);background:var(--panel);border-radius:0;justify-content:flex-start;align-items:stretch;gap:6px;min-height:125px;padding:8px;display:flex}.calendar-date-grid .calendar-date-cell.is-today{background:var(--panel-muted);outline:0}.calendar-cell-date{min-width:32px;min-height:32px;color:var(--text);background:0 0;border:0;border-radius:50%;align-self:flex-start;padding:4px 6px;font-size:.9rem;display:block}.calendar-cell-date:hover:not(:disabled){background:var(--panel-muted);color:var(--text)}.is-today .calendar-cell-date{background:var(--text);color:var(--panel)}.calendar-cell-weekday{display:none}.calendar-cell-event{text-align:left;background:var(--panel-muted);width:100%;min-width:0;min-height:44px;color:var(--text);border:0;border-left:3px solid;border-radius:4px;padding:5px 7px}.calendar-cell-event:hover:not(:disabled){background:var(--primary-soft);color:var(--text)}.calendar-cell-event.assignment{border-left-color:#d97706}.calendar-cell-event.study{border-left-color:#2563eb}.calendar-cell-event.commitment{border-left-color:#7c3aed}.calendar-cell-event span{font-size:.7rem;display:block}.calendar-cell-event strong{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;display:block;overflow:hidden}.calendar-cell-event.completed strong{opacity:.65;text-decoration:line-through}.calendar-more-events{min-height:32px;color:var(--text);text-align:left;background:0 0;border:none;padding:4px;font-size:.75rem}.calendar-cell-empty{color:var(--muted);padding:8px 2px}.calendar-event-dialog{box-sizing:border-box;border:1px solid var(--field-border);background:var(--panel);width:min(480px,100vw - 40px);max-height:80dvh;color:var(--text);border-radius:16px;padding:24px;overflow:auto}.calendar-event-dialog::backdrop{background:#0f172a80}.calendar-dialog-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.calendar-dialog-heading h2{margin:0;font-size:1.1rem}.calendar-event-dialog .calendar-detail-head,.calendar-event-dialog .calendar-detail-meta{overflow-wrap:anywhere;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:16px;display:flex}@media (width<=1100px){.planner-setup-grid{grid-template-columns:minmax(0,1fr)}.planner-step .planner-buffer-options button{flex:auto}}@media (width<=700px){.planner-deadline-path{grid-template-columns:minmax(0,1fr)}.calendar-toolbar>div:first-child{flex-basis:100%}.calendar-toolbar .calendar-jump{width:100%}.calendar-date-grid.month .calendar-date-cell{gap:3px;min-height:105px;padding:3px}.calendar-date-grid.month .calendar-cell-event{border-left-width:2px;padding:4px 2px}.calendar-date-grid.month .calendar-cell-event strong{font-size:.65rem}.calendar-date-grid.month .calendar-cell-event span{font-size:.6rem}.calendar-date-grid.month .calendar-more-events{font-size:.65rem}.calendar-date-grid.week{grid-template-columns:minmax(0,1fr)}.calendar-date-grid.week .calendar-weekday{display:none}.calendar-date-grid.week .calendar-cell-weekday{display:inline}.calendar-date-grid.week .calendar-cell-date{border-radius:8px}.calendar-date-grid.week .calendar-date-cell{min-height:80px}}.calendar-toolbar .calendar-jump{flex:none;width:auto;margin:0}.calendar-mobile-count{display:none}.planner-preview-actions .primary-link-button{box-sizing:border-box;border-radius:10px;align-items:center;min-height:44px;padding:10px 16px;text-decoration:none;display:inline-flex}@media (width<=700px){.calendar-toolbar .calendar-jump{width:100%}.calendar-date-grid.month .calendar-date-cell{min-height:72px}.calendar-date-grid.month .calendar-cell-event,.calendar-date-grid.month .calendar-more-events{display:none}.calendar-mobile-count{background:var(--text);min-height:32px;color:var(--panel);border:0;border-radius:4px;padding:3px 0;font-size:.75rem;display:block}.calendar-mobile-count span{font-size:.55rem;display:block}}@media (width>=900px){.planner-session-timeline li>div{flex:1;grid-template-columns:170px minmax(0,1fr) 70px;align-items:center;gap:12px;display:grid}.planner-session-timeline span,.planner-session-timeline small{margin:0}}
