:root{color-scheme:light dark;--bg:light-dark(#eef1f5,#0a0e14);--fg:light-dark(#16202c,#d7e0ea);--muted:light-dark(#5c6b7c,#8294a7);--panel:light-dark(rgba(252,253,254,0.92),rgba(16,21,30,0.92));--border:light-dark(#d8dee6,#232e3c);--bar-h:200px;--footer-h:26px;--link:light-dark(#1a5dd8,#7ab3ff);--shadow-1:0 1px 3px light-dark(rgba(9,20,34,.08),rgba(0,0,0,.35)),0 2px 10px light-dark(rgba(9,20,34,.08),rgba(0,0,0,.30));--shadow-2:0 4px 18px light-dark(rgba(9,20,34,.14),rgba(0,0,0,.45));--shadow-3:0 14px 44px light-dark(rgba(9,20,34,.28),rgba(0,0,0,.60));--ring:0 0 0 3px color-mix(in srgb,var(--accent) 28%,transparent)}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}body,html{margin:0;height:100%;background:var(--bg);color:var(--fg);font:14px/1.45 system-ui,-apple-system,sans-serif;overflow:hidden;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease,filter .15s ease}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}#map{inset:0}#map,#overlay{position:absolute}#overlay{top:0;left:0;width:100%;height:100%;pointer-events:none}.maplibregl-marker{z-index:1}.venue-marker{width:14px;height:14px;border-radius:50%;background:var(--marker);border:2px solid rgba(255,255,255,.9);opacity:.92;box-shadow:0 0 10px color-mix(in srgb,var(--marker) 70%,transparent)}.status{position:absolute;top:64px;left:50%;transform:translateX(-50%);background:var(--panel);border:1px solid var(--border);padding:6px 14px;border-radius:999px;max-width:60ch;z-index:5;box-shadow:var(--shadow-1)}.status.err{color:#e5484d}.locked-hint{position:absolute;background:var(--panel);border:1px solid var(--border);padding:5px 10px;border-radius:8px;z-index:6;pointer-events:none;white-space:nowrap;box-shadow:var(--shadow-1)}.search{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:min(440px,calc(100% - 24px));z-index:10}.search input{width:100%;padding:10px 16px 10px 38px;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--panel) 50%,transparent);color:var(--fg);font:inherit;outline:none;box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .15s ease,box-shadow .15s ease}.search input:focus{border-color:var(--accent);box-shadow:var(--ring),var(--shadow-1)}.search .icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;display:flex}.search .results{margin-top:6px;background:var(--panel);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.search .results button{display:block;width:100%;text-align:left;padding:9px 14px;border:none;background:none}.search .results button:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.search .results .empty{padding:9px 14px;color:var(--muted)}.search .results .group+.group{border-top:1px solid var(--border)}.search .results .section{padding:8px 14px 4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.search .results button.club{display:flex;align-items:center;gap:8px}.search .results button.club .badge{flex:none;opacity:.7;font-size:13px}.contrastpill{display:flex;flex-direction:column;gap:5px;width:max-content;padding:6px 7px;border-radius:18px;border:1px solid var(--border);background:color-mix(in srgb,var(--panel) 50%,transparent);box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.contrastpill .hdr{font-size:10px;line-height:1;text-align:center;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.contrastpill .seg{display:flex;border:1px solid var(--border);border-radius:999px;padding:2px;gap:2px}.contrastpill .seg button{width:auto;height:auto;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:none;background:none;color:var(--muted);font-size:11px;padding:2px 8px;border-radius:999px;white-space:nowrap}.contrastpill .seg button:hover{color:var(--accent)}.contrastpill .seg button.on{background:var(--accent);color:var(--accent-fg);font-weight:600;box-shadow:none}.toggles{position:absolute;left:12px;bottom:calc(var(--bar-h) + var(--footer-h) + 12px);z-index:10;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toggles .contrastpill,.toggles button{pointer-events:auto}.toggles button{width:42px;height:42px;border-radius:50%;border:1px solid var(--border);background:color-mix(in srgb,var(--panel) 50%,transparent);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--muted);padding:0}.toggles button.on,.toggles button:hover{border-color:var(--accent)}.toggles button.on{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--panel));box-shadow:0 0 0 1.5px var(--accent),var(--shadow-1)}.toggles .redblue,.toggles .viridis{width:20px;height:20px;border-radius:50%}.toggles .viridis{background:linear-gradient(90deg,#440154 50%,#7ad151 0)}.toggles .redblue{background:linear-gradient(90deg,#08296b 50%,#d63026 0)}.toggles button:not(.on) .redblue,.toggles button:not(.on) .viridis{filter:grayscale(1) opacity(.55)}.right-controls{right:12px;bottom:calc(var(--bar-h) + var(--footer-h) + var(--attrib-h, 24px) + 22px);transition:bottom .15s ease;gap:8px;align-items:flex-end}.bar,.right-controls{position:absolute;z-index:10;display:flex;flex-direction:column}.bar{left:0;right:0;bottom:var(--footer-h);height:var(--bar-h);background:var(--panel);border-top:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:10px 14px 8px;gap:6px}.bar .head{gap:12px}.bar .head,.bar .play{display:flex;align-items:center}.bar .play{width:36px;height:36px;border-radius:50%;border:none;flex:none;background:var(--accent);color:var(--accent-fg);justify-content:center;box-shadow:0 1px 4px color-mix(in srgb,var(--accent) 45%,transparent)}.bar .play:hover{filter:brightness(1.08);box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 55%,transparent)}.bar .play:active{transform:scale(.94)}.bar .when{font-family:var(--font-mono),monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:188px;letter-spacing:.01em;white-space:nowrap}.bar .todaybtn{padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:none;color:var(--muted);font-size:12px;white-space:nowrap}.bar .todaybtn:hover{border-color:var(--accent);color:var(--accent)}.bar .weeknav{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);background:none;color:var(--muted);font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;flex:none}.bar .weeknav:hover{border-color:var(--accent);color:var(--accent)}.bar .datechip{padding:5px 12px;border-radius:999px;border:1px solid var(--border);background:none;font-family:var(--font-mono),monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:118px;white-space:nowrap;flex:none}.bar .datechip:hover{border-color:var(--accent);color:var(--accent)}.bar .spanswitch{display:flex;border:1px solid var(--border);border-radius:999px;padding:2px;gap:2px;flex:none}.bar .spanswitch button{border:none;background:none;color:var(--muted);font-size:12px;padding:2px 8px;border-radius:999px;white-space:nowrap}.bar .spanswitch button:hover{color:var(--accent)}.bar .spanswitch button.on{background:var(--accent);color:var(--accent-fg);font-weight:600}.backdrop{position:fixed;inset:0;z-index:19}.weekpicker{position:absolute;left:56px;bottom:calc(100% + 8px);z-index:20;background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-height:280px;overflow-y:auto;padding:4px;min-width:180px}.weekpicker button{display:block;width:100%;text-align:left;padding:7px 12px;border:none;background:none;border-radius:9px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.weekpicker button:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.weekpicker button.sel{color:var(--accent);font-weight:600}.weekpicker .now{color:var(--muted);font-weight:400;font-size:11px}.bar .venue{color:var(--muted);white-space:nowrap;overflow:hidden;flex:1 1;display:flex;align-items:center;justify-content:flex-end;gap:7px}.bar .venue-name{overflow:hidden;text-overflow:ellipsis}.venue-dot{width:9px;height:9px;border-radius:50%;background:var(--marker);flex:none;box-shadow:0 0 8px color-mix(in srgb,var(--marker) 70%,transparent)}.bar .graph{flex:1 1;min-height:0;cursor:ew-resize;touch-action:none;width:100%}.legal-footer{position:absolute;left:0;right:0;bottom:0;height:var(--footer-h);z-index:10;display:flex;align-items:center;justify-content:center;gap:18px;background:var(--panel);border-top:1px solid var(--border);font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden}.legal-footer a{color:var(--link);text-decoration:underline}.legal-footer a:hover{filter:brightness(1.15)}.account{position:absolute;top:12px;right:12px;z-index:10}.acct-btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--border);background:var(--panel);color:var(--muted);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.acct-btn:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.acct-btn:disabled{opacity:.55;cursor:default}.account .acct-avatar,.account .cl-userButtonAvatarBox{width:40px;height:40px}.locate{width:42px;height:42px;border-radius:50%;border:1px solid var(--border);background:var(--panel);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.locate.active,.locate.locating,.locate:hover{border-color:var(--accent)}.locate-dot{position:relative;width:14px;height:14px;border-radius:50%;background:#1a73e8;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.15)}.locate-dot.pulse:after{content:"";position:absolute;inset:-2px;border-radius:50%;border:2px solid #1a73e8;animation:locate-pulse 1.6s ease-out infinite}@keyframes locate-pulse{0%{transform:scale(.7);opacity:.7}to{transform:scale(2.4);opacity:0}}.locate .spinner{width:18px;height:18px;border-width:2.5px;border-color:#1a73e8 rgba(26,115,232,.3) rgba(26,115,232,.3)}@media (prefers-reduced-motion:reduce){.locate-dot.pulse:after{animation:none;opacity:0}}.maplibregl-ctrl-group:has(>.maplibregl-ctrl-geolocate){display:none}#map .maplibregl-ctrl-bottom-right{z-index:11;bottom:calc(var(--bar-h) + var(--footer-h))}#map .maplibregl-ctrl-attrib{background:color-mix(in srgb,var(--panel) 50%,transparent);color:var(--muted);border:1px solid var(--border);border-radius:10px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#map .maplibregl-ctrl-attrib.maplibregl-compact-show{padding:7px 34px 7px 11px;font-size:11px;line-height:1.55;max-width:min(340px,calc(100vw - 24px))}#map .maplibregl-ctrl-attrib a{color:var(--fg)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .maplibregl-ctrl-attrib-button{filter:invert(1)}}:root[data-theme=dark] .maplibregl-ctrl-attrib-button{filter:invert(1)}.solvebtn{position:absolute;top:12px;left:12px;z-index:10;display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--panel) 50%,transparent);color:var(--fg);box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-weight:500}.solvebtn:hover{border-color:var(--accent);color:var(--accent)}.solvebanner{position:absolute;top:64px;left:50%;transform:translateX(-50%);z-index:11;width:max-content;display:flex;align-items:center;gap:16px;padding:10px 8px 10px 12px;border-radius:14px;background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-width:calc(100% - 24px)}.solvebanner .row{display:flex;gap:8px}.solvebanner .step{flex:none;width:22px;height:22px;border-radius:50%;margin-right:8px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-fg);font-size:12px;font-weight:700;vertical-align:-5px}.solvebanner .seg{display:inline-flex;align-items:stretch;border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-right:4px}.solvebanner .seg button{padding:6px 12px;font-size:13px;font-weight:600;line-height:1;background:transparent;border:none;color:var(--muted);cursor:pointer}.solvebanner .seg button.on{background:var(--accent);color:var(--accent-fg)}.solvebanner .seg button:not(.on):hover{color:var(--fg)}.region-capture{position:absolute;inset:0;z-index:4;cursor:crosshair;touch-action:none}.modal-backdrop{position:fixed;inset:0;z-index:30;background:rgba(4,10,18,.4);display:flex;align-items:center;justify-content:center;animation:fade-in .15s ease}.modal-backdrop.behind{z-index:29}.modal-backdrop~.modal-backdrop.behind{background:none}.modal{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:20px 22px;width:min(384px,calc(100% - 32px));box-shadow:var(--shadow-3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:modal-in .18s ease}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.97)}}.modal h3{margin:0 0 12px;font-size:17px;font-weight:650;letter-spacing:-.01em}.modal-x{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:50%;border:none;background:none;color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:15px;line-height:1}.modal-x:hover{background:color-mix(in srgb,var(--fg) 8%,transparent);color:var(--fg)}.modal .kv{margin:0 0 12px;display:flex;flex-direction:column;gap:7px}.modal .kv>div{display:flex;justify-content:space-between;gap:16px}.modal .kv dt{color:var(--muted)}.modal .kv dd{margin:0;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.modal .note{color:var(--muted);font-size:13px;margin:0 0 4px}.modal .note.err{color:#e5484d}.modal .note.warn{color:#f0b429}.modal .modechoice{display:flex;flex-direction:column;gap:10px}.modal .modechoice button{display:flex;flex-direction:column;gap:4px;text-align:left;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--bg);color:var(--fg);font:inherit;cursor:pointer}.modal .modechoice button:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--bg));box-shadow:var(--shadow-1)}.modal .modechoice button span{color:var(--muted);font-size:13px;line-height:1.4}.modal .modechoice strong{display:flex;align-items:center;gap:8px}.modal .modechoice .spinner{width:14px;height:14px;border-width:2px}.modal .modechoice .chip{margin-left:auto;font-style:normal;font-weight:650;font-size:12px;padding:2px 8px;border-radius:999px;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.modal .modechoice button.locked{opacity:.55}.modal .modechoice button.locked:hover{border-color:var(--border);background:var(--bg);box-shadow:none}.modal .stages{list-style:none;margin:4px 0 14px;padding:0;display:flex;flex-direction:column;gap:11px}.modal .stage{display:flex;align-items:center;gap:10px}.modal .stage .slot{width:22px;height:22px;flex:none;display:grid;place-items:center}.modal .stage .stext{color:var(--muted);transition:color .18s ease}.modal .stage.active .stext{color:var(--fg);font-weight:600}.modal .stage.done .stext{color:var(--fg)}.modal .stage .eta{font-style:italic;color:var(--muted);font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-left:1px}.modal .stage .hollow{width:22px;height:22px;border-radius:50%;border:2px solid color-mix(in srgb,var(--muted) 42%,transparent)}.modal .stage .ring{width:22px;height:22px;display:block}.modal .stage .ring .track{fill:none;stroke:color-mix(in srgb,var(--accent) 30%,transparent);stroke-width:3}.modal .stage .ring .fill{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .4s ease}.modal .stage .tick{width:22px;height:22px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-fg);animation:pop .18s ease}@keyframes pop{0%{transform:scale(.6);opacity:0}}.modal .stage .tick svg{width:13px;height:13px}.solvebanner .costline{display:block;margin:4px 0 0 30px;font-size:13px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.solvebanner .costline.err{color:#e5484d}.wp{display:flex;flex-direction:column;align-items:center;gap:3px;cursor:-webkit-grab;cursor:grab}.wp-dot{width:14px;height:14px;border-radius:50%;background:var(--accent);border:2.5px solid #fff;box-shadow:var(--shadow-1)}.wp-slider{width:84px;accent-color:var(--accent);cursor:pointer}.wp-r{font-size:11px;font-weight:650;color:var(--fg);padding:1px 6px;border-radius:8px;border:1px solid var(--border);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wp-r,.wp-x{background:var(--panel)}.wp-x{position:absolute;top:-10px;right:-6px;width:18px;height:18px;border-radius:50%;border:1px solid var(--border);color:var(--muted);font-size:10px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer}.wp-x:hover{color:#e5484d;border-color:#e5484d}.pop{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}.curplan,.pop{flex:none;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.curplan{margin-left:7px;white-space:nowrap;border:1px solid var(--border);background:var(--panel);color:var(--muted)}.modal.wide{width:min(560px,calc(100% - 32px))}.plantable-scroll{overflow-x:auto;margin:0 0 8px}.plantable{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}.plantable td,.plantable th{padding:6px 12px;text-align:center}.plantable td:first-child,.plantable th:first-child{text-align:left;padding-left:0;width:1%}.plantable tbody td:first-child{color:var(--muted)}.plantable tbody tr{border-top:1px solid var(--border)}.plantable thead th{font-weight:650}.plantable thead th em{display:block;font-style:normal;font-weight:400;font-size:12px;color:var(--muted)}.plantable thead th .curplan,.plantable thead th .pop{display:inline-block;margin-left:6px;vertical-align:1px}.plantable tbody td .rownote{display:block;font-style:italic;font-size:11px;color:var(--muted)}.plantable .yes{color:var(--accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.plantable .no{color:var(--muted);opacity:.55}.plantable tfoot td{padding-top:12px}.plantable tfoot button{width:100%;padding:7px 10px;font-size:13px;display:inline-flex;justify-content:center}.plantable .spinner{width:14px;height:14px;border-width:2px}.plantable .cur{background:color-mix(in srgb,var(--accent) 9%,transparent)}.plantable thead th.cur{border-radius:10px 10px 0 0}.plantable tr.credits td{font-weight:700}@media (max-width:480px){.plantable{font-size:12px}.plantable td,.plantable th{padding:6px 4px}.plantable td:first-child,.plantable th:first-child{white-space:normal}.plantable thead th em{font-size:11px}.plantable tfoot button{padding:6px 4px;font-size:12px}}.modal .row{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.modal .club-search{margin:8px 0 0;width:min(340px,70vw)}.modal .club-search input{width:100%;padding:9px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--fg);font:inherit;outline:none}.modal .club-search input:focus{border-color:var(--accent)}.modal .club-search .results{margin-top:6px;max-height:220px;overflow-y:auto;border:1px solid var(--border);border-radius:10px}.modal .club-search .results button{display:block;width:100%;text-align:left;padding:9px 12px;border:none;background:none;color:var(--fg);font:inherit;font-size:13px}.modal .club-search .results button:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 12%,transparent)}.modal .club-search .results .empty{padding:9px 12px;color:var(--muted);font-size:13px}.modal .club-search .results .group+.group{border-top:1px solid var(--border)}.modal .club-search .results .section{padding:7px 12px 3px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.modal .club-search .results button.club{display:flex;align-items:center;gap:8px}.modal .club-search .results button.club .badge{flex:none;opacity:.7;font-size:13px}.modal .solving{display:flex;align-items:center;gap:12px}.modal .solving h3{margin:0}.modal .consent{display:flex;align-items:flex-start;gap:9px;margin:10px 0 2px;font-size:13px;color:var(--fg);cursor:pointer}.modal .consent input{margin-top:2px;accent-color:var(--accent)}.modal .consent a,.modal .note a{color:var(--link);text-decoration:underline}.primary{padding:8px 16px;border-radius:999px;border:none;background:var(--accent);color:var(--accent-fg);font-weight:600;box-shadow:0 1px 4px color-mix(in srgb,var(--accent) 40%,transparent)}.primary:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 50%,transparent)}.primary:active:not(:disabled){transform:translateY(1px)}.primary:disabled{opacity:.5;cursor:not-allowed}.primary.loading{opacity:1;cursor:default;min-width:132px;display:inline-flex;align-items:center;justify-content:center}.primary.loading .spinner{width:18px;height:18px;border-width:2px;border-color:color-mix(in srgb,var(--accent-fg) 45%,transparent);border-top-color:var(--accent-fg)}.ghost{padding:8px 16px;border-radius:999px;border:1px solid var(--border);background:none;color:var(--muted)}.ghost:hover{border-color:var(--accent);color:var(--accent)}a.primary{text-decoration:none;display:inline-flex;align-items:center}.helpbtn{position:absolute;top:60px;left:12px;z-index:10;height:38px;padding:0 15px;border-radius:999px;border:1px solid var(--border);background:var(--panel);color:var(--fg);font-size:13px;font-weight:600;box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.helpbtn:hover{border-color:var(--accent);color:var(--accent)}.helpbtn.lone{top:12px}.modal.help{width:min(660px,calc(100% - 32px));max-height:calc(100% - 32px);overflow-y:auto}.modal.help .about{margin:0 0 16px;padding-bottom:14px;border-bottom:1px solid var(--border)}.modal.help .about p,.modal.help .feature p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.modal.help .feature{display:grid;grid-template-columns:190px 1fr;grid-gap:14px;gap:14px;align-items:center}.modal.help .feature+.feature{margin-top:16px}.modal.help .feature img{width:100%;border-radius:10px;border:1px solid var(--border)}.modal.help .feature .icon{display:flex;align-items:center;justify-content:center;color:var(--accent);min-height:72px;border:1px solid var(--border);border-radius:10px}.modal.help .feature h4{margin:0 0 4px;font-size:14px}.modal.help .help-section{margin:0 0 14px;padding:0 0 14px;border-bottom:1px solid var(--border)}.modal.help .help-section:last-of-type{margin-bottom:4px}.modal.help .help-section summary{cursor:pointer;font-size:14px;font-weight:600;list-style:none;display:flex;align-items:center;gap:8px}.modal.help .help-section summary::-webkit-details-marker{display:none}.modal.help .help-section summary:before{content:"›";color:var(--muted);font-weight:700;transition:transform .15s}.modal.help .help-section[open] summary:before{transform:rotate(90deg)}.modal.help .help-section summary:hover{color:var(--accent)}.modal.help .help-section[open] summary{margin-bottom:12px}.modal.help .tiers{margin:0;padding:0 0 0 2px;list-style:none}.modal.help .tiers li{margin:0 0 6px;color:var(--muted);font-size:13px;line-height:1.5}.modal.help .tiers li:last-child{margin-bottom:0}.ctxmenu{position:fixed;z-index:25;min-width:170px;padding:5px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.ctxitem{display:flex;align-items:center;gap:9px;width:100%;padding:8px 11px;border:none;border-radius:8px;background:none;color:var(--fg);text-align:left}.ctxitem:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.ctxitem:disabled{opacity:.4;cursor:not-allowed}.ctxitem.danger:hover:not(:disabled){background:color-mix(in srgb,#e5484d 14%,transparent);color:#e5484d}.primary.danger{background:#e5484d}.spinner{width:22px;height:22px;border-radius:50%;flex:none;border:3px solid color-mix(in srgb,var(--accent) 30%,transparent);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:640px){:root{--bar-h:168px}#map .maplibregl-ctrl-attrib,.acct-btn,.bar,.contrastpill,.ctxmenu,.helpbtn,.locate,.locked-hint,.modal,.search .results,.search input,.solvebanner,.solvebtn,.status,.toggles button,.weekpicker{-webkit-backdrop-filter:none;backdrop-filter:none}#map .maplibregl-ctrl-attrib,.search input,.solvebtn,.toggles button{background:var(--panel)}.bar .datechip,.bar .venue,.bar .whendate,.bar .whensep{display:none}.bar.day .whendate,.bar.day .whensep{display:inline}.bar.day .head{gap:6px}.bar .head{gap:8px}.bar .when{min-width:0;font-size:12px}.bar .todaybtn{padding:4px 8px}.legal-footer{gap:10px;font-size:11px}.legal-footer .co{display:none}.search{left:12px;right:66px;width:auto;transform:none}.solvebtn,.solvebtn span{font-size:13px}.solvebtn{top:62px}.helpbtn{top:110px}.helpbtn.lone{top:62px}.solvebanner{flex-direction:column;align-items:stretch;gap:8px}.modal.help .feature{grid-template-columns:1fr;gap:8px}.modal.help .about{margin-bottom:12px;padding-bottom:10px}}.adminpage{position:absolute;inset:0;overflow:auto;padding:24px;max-width:1100px;margin:0 auto}.adminpage h1{margin:0 0 16px;font-size:22px;letter-spacing:-.01em}.adminpage h2{margin:24px 0 10px;font-size:16px}.adminpage .muted{color:var(--muted)}.adminpage .err{color:#e5484d}.adminpage .tablewrap{overflow-x:auto;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-1)}.adminpage table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}.adminpage td,.adminpage th{padding:8px 12px;text-align:left}.adminpage thead th{font-weight:650;border-bottom:1px solid var(--border)}.adminpage tbody tr+tr{border-top:1px solid var(--border)}.adminpage td.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.adminpage input,.adminpage select{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:4px 8px}.adminpage input[type=number]{width:90px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.adminpage button{border:1px solid var(--border);border-radius:8px;background:var(--bg);padding:4px 10px}.adminpage button:disabled{opacity:.45;cursor:default}.adminpage button.danger:not(:disabled):hover{border-color:#e5484d;color:#e5484d}.adminpage button.tick:not(:disabled){border-color:var(--accent);color:var(--accent)}