.solo-start{width:min(520px,calc(100vw - 32px));max-height:90dvh;overflow:auto;border:1px solid var(--border,#aaa39d);background:var(--bg,#f5f1ec);color:var(--text,#13110f);padding:28px;font:15px/1.5 Inter,system-ui,sans-serif}
.solo-share-button .share-copy-label{top:auto;bottom:calc(100% + 6px)}
#solo-share .share-copy-label{bottom:auto;top:calc(100% + 6px)}
.solo-leave{color:var(--text,#13110f);background:var(--bg,#f5f1ec);border:1px solid var(--border,#aaa39d);font:14px/1.5 var(--display,Inter,system-ui);max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:20px}
.solo-leave::backdrop{background:#17141099}
.solo-leave h2{font-size:22px;margin:0 0 20px}.solo-leave-note{margin:-12px 0 18px;color:var(--muted,#6f6862);max-width:34ch}
/* The same buttons as the rest of the site: staying is the green, primary
   action; leaving is the plain one. */
.solo-leave button{padding:12px 18px;font:500 12.5px/1.2 var(--mono,monospace);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--border,#aaa39d);cursor:pointer;color:inherit;background:var(--panel,#fff)}
.solo-leave button:hover{border-color:var(--text,#13110f)}
.solo-leave [data-stay]{background:var(--accent-soft,#e7f7ec);border:2px solid var(--accent-bright,#48db7e)}.solo-leave [data-stay]:hover{background:#d8f2e1;border-color:var(--accent-bright,#48db7e)}
.solo-review-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:12px;width:100%;max-width:1320px;margin:0 auto;padding:0 20px;min-height:44px;flex:none;border-bottom:1px solid var(--text);font:12px var(--mono,monospace)}
.solo-review-nav strong{display:flex;align-items:center;font:600 15px var(--sans,system-ui)}.solo-review-nav .btn{justify-self:end;align-self:center;margin:6px 0;padding:8px 12px;border:1px solid var(--border);border-radius:0}
.solo-review-nav select{align-self:center;max-width:150px;min-width:0}
.solo-review-nav.single{grid-template-columns:1fr auto}
.solo-result-board .chart-layout:has(.trend-review-surface){flex:none;min-height:0;align-items:start}.solo-result-board .chart-shell:has(.trend-review-surface){width:100%;min-height:0}.solo-result-board .chart-layout:has(.trend-review-surface) .line-filter{align-self:stretch}
.review-arrow{position:fixed;top:52%;z-index:1500;font:28px var(--sans,system-ui);width:36px;height:60px;color:inherit;background:var(--panel,#fff);border:1px solid var(--border,#aaa39d);cursor:pointer}.review-prev{left:8px}.review-next{right:8px}.review-arrow:disabled{opacity:.3;cursor:default}
main.solo-result-board{padding-left:54px!important;padding-right:54px!important;overflow:auto!important}.solo-result-board>.stage,.solo-result-board>.flight{min-height:min-content;flex-shrink:0}.solo-result-board .stage>*{flex-shrink:0}.solo-result-board .map-panel,.solo-result-board .globe-frame{min-height:260px}.solo-result-board #map-wrap{min-height:300px}.solo-result-board .leaflet-control-container{display:none}.solo-result-board *{animation:none!important;transition:none!important}.solo-result-board button:disabled{opacity:1}.review-answer{padding:16px 0;width:100%;max-width:800px;margin:auto}.solo-result-board#content:has(.review-answer){flex-wrap:wrap}.solo-round-review{display:flex;justify-content:flex-end;flex:none}
.modal-actions,#modal-actions,.result-actions{flex-wrap:nowrap!important;container-type:inline-size}.modal-actions>button,#modal-actions>button{flex:1 1 0;min-width:0;white-space:normal;overflow-wrap:anywhere;padding:10px!important;font-size:12px!important}
.solo-review-short{display:none}
@media(max-width:600px){
  .modal-actions,#modal-actions,.result-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}
  .modal-actions>button,#modal-actions>button,.result-actions>button{min-height:44px;white-space:normal;overflow-wrap:normal;word-break:normal;letter-spacing:.04em;padding:10px 6px!important}
  .modal-actions>button:only-child,#modal-actions>button:only-child,.result-actions>button:only-child{grid-column:1/-1}
  .solo-review-long{display:none}.solo-review-short{display:inline}
}
/* The share label never breaks mid-word. Where the row cannot give the button
   the ~200px the full phrase needs (three buttons under 620px, two under 420px),
   it shows the short label on one line instead. */
.solo-share-button .share-label-short{display:none}.solo-share-button .share-label,.solo-share-button .share-label-short{overflow-wrap:normal;word-break:keep-all}
@container (max-width:419px){.solo-share-button .share-label{display:none}.solo-share-button .share-label-short{display:inline}}
@container (max-width:619px){:is(.modal-actions,#modal-actions,.result-actions):has(>:nth-child(3)) .solo-share-button .share-label{display:none}:is(.modal-actions,#modal-actions,.result-actions):has(>:nth-child(3)) .solo-share-button .share-label-short{display:inline}}.modal-actions .solo-share-button svg,#modal-actions .solo-share-button svg{width:16px;height:16px}
@media(max-width:600px){main.solo-result-board{padding-left:34px!important;padding-right:34px!important}.review-arrow{width:26px}.review-prev{left:3px}.review-next{right:3px}.solo-review-nav{padding:0 6px;gap:6px;font-size:10px}.solo-review-nav strong{font-size:12px}.solo-review-nav .btn{font-size:10px;padding:6px}.solo-buttons{gap:8px}.solo-buttons button{flex:1;min-width:0}}
.solo-start::backdrop{background:#13110fb8}.solo-start h2{margin-top:0}.solo-start-status{font-weight:700}.solo-storage,.solo-reset{font-size:12px;color:var(--muted,#46413e)}.solo-buttons{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px}
/* City Limits keeps its gameplay proportions: the map and the side panel. */
main.solo-result-board.city-result-board{padding:0!important;overflow:visible!important;flex-wrap:nowrap}
.city-result-board #map-wrap{min-height:0}
.city-result-board #map[data-live-review] .leaflet-control-container{display:block}
/* City Limits' review keeps its map clear: "‹ City 1 of 5 ›" and the way
   back head the side panel, then a card for the city, then its guesses. The
   header's five-city track is the other way to pick one. */
.city-review-nav{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:6px;margin:0 0 14px;padding:0 0 12px;border-bottom:1px solid var(--border,#aaa39d)}
.city-review-nav select{display:none}
.city-review-nav strong{font:600 11px/1.2 var(--mono,monospace);letter-spacing:.1em;text-transform:uppercase;text-align:center;white-space:nowrap}
.city-review-nav .review-arrow{position:static;z-index:auto;transform:none;width:34px;height:34px;padding:0;font-size:22px;line-height:1}
.city-review-nav .review-arrow[hidden]{display:none}
.city-review-nav .btn{padding:9px 10px;border:1px solid var(--border,#aaa39d);border-radius:0;background:var(--accent-soft,#e7f7ec);color:var(--text);font:11px var(--mono,monospace);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;cursor:pointer}
.city-result-board #play-panel{display:flex;flex-direction:column;gap:10px}
.city-result-board #play-panel #guess-list{flex:none}.city-result-board #guess-list .slot{flex:none;min-height:34px}
.city-review-card{display:flex;flex-direction:column;gap:3px}
.city-review-card p{margin:0}
.city-review-card .kicker{font:10px var(--mono,monospace);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.city-review-card h2{margin:0;font:700 26px/1.1 var(--display,system-ui)}
.city-review-card h2 a{color:inherit}
.city-review-country{color:var(--muted);font-size:14px}
.city-review-card .city-round-outcome{display:block;margin-top:8px;font-size:14px}
.city-review-points{font:13px var(--mono,monospace)}
.city-review-distance,.city-review-population{font-size:13px;color:var(--muted)}
.city-review-guesses{margin:6px 0 0;font:10px var(--mono,monospace);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.city-track.reviewing li{padding:0;color:var(--text)}
.city-track.reviewing li::before{display:none}
.city-track.reviewing button{display:flex;align-items:center;gap:6px;padding:6px 10px;border:0;border-radius:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}
.city-track.reviewing button::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.city-track.reviewing li.easy button::before{background:var(--green)}.city-track.reviewing li.medium button::before{background:var(--yellow)}.city-track.reviewing li.hard button::before{background:var(--red)}
.city-track.reviewing li:not([aria-current]) button:hover{background:var(--accent-soft)}
.city-track.reviewing li[aria-current] button{background:var(--text);color:var(--bg)}
.city-track .n.found{color:var(--accent)}.city-track .n.missed{color:var(--red)}
.city-track li[aria-current] .n.found{color:var(--accent-bright)}.city-track li[aria-current] .n.missed{color:#f08a84}
@media(max-width:760px){main.solo-result-board.city-result-board{overflow-y:auto!important}.city-result-board #map-wrap{min-height:180px}.city-review-nav{margin-bottom:10px;padding-bottom:8px}.city-review-card h2{font-size:22px}.city-track.reviewing button{padding:7px 8px}}
.solo-start button{padding:12px;border:1px solid var(--border,#aaa39d);background:var(--panel,#f8f5f1);color:inherit;font:inherit}.solo-start select{padding:12px 34px 12px 12px}.solo-start button:enabled{background:var(--accent-soft,#e7f7ec);cursor:pointer}.solo-start a,#solo-pr-toast a{color:inherit}
#solo-allowance{font:11px var(--mono,monospace);letter-spacing:0;text-transform:none;margin-left:auto;white-space:nowrap}
#solo-notice{font:11px var(--mono,monospace);color:var(--muted);text-transform:none;letter-spacing:0}
#solo-offline-status{font:10px var(--mono,monospace);color:var(--muted);text-transform:none;letter-spacing:0;white-space:nowrap}
#solo-pr-toast{pointer-events:none;transition:opacity .45s}#solo-pr-toast.leaving{opacity:0}#solo-pr-toast button{pointer-events:auto}
.solo-share-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:transparent;border:1px solid var(--border,#aaa39d);color:var(--muted,#46413e);min-width:30px;min-height:30px;cursor:pointer}.solo-share-button svg{flex:none}.solo-share-button.copied{color:var(--muted,#46413e);border-color:currentColor;background:var(--wash,#e9e5df)}.share-copy-label{position:absolute;right:0;top:calc(100% + 6px);z-index:6000;white-space:nowrap;padding:7px 10px;background:var(--text,#13110f);color:var(--bg,#f5f1ec);font:600 12px var(--mono,monospace);pointer-events:none;box-shadow:0 3px 12px #0002}
.solo-exhausted> :not(.solo-day-finished){display:none!important}.solo-day-finished{padding:32px;align-self:center;margin:auto;max-width:500px}.solo-day-finished a{color:inherit}
@media(max-width:640px){.solo-time-setting{font-size:10px}.solo-time-setting select{max-width:110px;padding:4px 24px 4px 6px;background-position:right 6px center}#solo-allowance{font-size:10px}#crumbs{flex-wrap:wrap}#solo-notice{flex-basis:100%}
/* The page's own name is the heading right under the crumbs; on a phone the
   crumb copy of it only pushed the allowance onto a second line. */
#crumbs .here,#crumbs .sep:has(+ .here){display:none}}
.solo-time-setting{font:11px var(--mono,monospace);display:flex;align-items:center;gap:5px}.solo-time-setting select{max-width:140px}#solo-clock{font:700 20px var(--mono,monospace);min-width:5ch;text-align:right}#solo-share{flex-shrink:0}
#solo-pr-toast{position:fixed;right:16px;bottom:16px;z-index:5000;width:min(370px,calc(100vw - 32px));box-sizing:border-box;background:var(--accent-soft,#e7f7ec);color:var(--text,#13110f);border:2px solid var(--accent,#2e9e5b);padding:18px 38px 18px 18px;box-shadow:0 6px 30px #0002;font:15px/1.5 Inter,system-ui,sans-serif}
#solo-pr-toast strong,#solo-pr-toast span,#solo-pr-toast small{display:block}#solo-pr-toast small{margin:5px 0;color:var(--muted,#46413e)}#solo-pr-toast button{position:absolute;right:6px;top:4px;border:0;background:none;color:inherit;font-size:24px;cursor:pointer}.solo-pr-list{display:flex;flex-wrap:wrap;gap:12px}.solo-pr-list article{border:1px solid var(--border,#aaa39d);padding:14px;min-width:200px}.solo-pr-list strong,.solo-pr-list span{display:block}
/* A phone's next-round button and verdict sit at the foot of the screen: the passing record shows at the top instead. */
@media(max-width:640px){#solo-pr-toast:not(.solo-record-inline){top:12px;bottom:auto;left:12px;right:12px;width:auto;padding:12px 38px 12px 14px;font-size:14px}}
#solo-pr-toast.solo-record-inline{position:relative;inset:auto;width:100%;margin:12px 0;padding:12px 40px 12px 12px;box-shadow:none;font-size:13px;z-index:auto}
#solo-pr-toast.solo-record-inline button{min-width:36px;min-height:36px}
/* The place a tap or click chose on a results map (solo-play.js pin). */
.review-selected-outline{fill:none;stroke:#13110f;stroke-width:2.5px;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}
.review-hover-outline{fill:none;stroke:#198d4d;stroke-width:2px;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}
.review-map-tip { position:fixed; z-index:80; pointer-events:none; max-width:min(320px,calc(100vw - 16px)); padding:8px 12px; background:var(--panel); color:var(--text); border:1px solid var(--border); font:12px/1.5 var(--mono); white-space:pre-line; overflow-wrap:anywhere; box-shadow:0 3px 12px #0002; }

.result-reopen { position:fixed; bottom:calc(18px + env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); z-index:100; box-shadow:0 3px 12px #0002; }
/* On a touch screen: readable crumbs and allowance, and a play-time picker and
   share button a finger can hit (the picker at 16px, or iOS zooms the page in
   when it opens). */
@media(pointer:coarse){#crumbs{font-size:11px}#solo-allowance{font-size:11px}.solo-time-setting{font-size:12px}.solo-time-setting select{min-height:40px;font-size:16px;padding:6px 26px 6px 8px}.solo-share-button{min-width:40px;min-height:40px}}
/* A phone's header row: the picker's options say what it is (Free play, 3
   minutes), so its "Play time" label gives up its width (it stays the
   picker's accessible name) and the help button stays on the same row. */
@media(pointer:coarse) and (max-width:640px){.solo-time-setting{font-size:0;gap:0}.solo-time-setting select{max-width:140px}}
/* Once a timed game starts, its clock joins that row: tighter gaps, a
   narrower picker and a smaller clock keep the help button on it. */
@media(max-width:640px){.topbar-right:has(#solo-clock:not([hidden])){gap:6px}.topbar-right:has(#solo-clock:not([hidden])) .solo-time-setting select{max-width:118px}#solo-clock{font-size:18px;min-width:0}}
/* The rules ("?") over a results review: the review's bar (its title, round
   picker and way back), its arrows and the reopen button step aside while
   the rules are open. */
body.briefing .solo-review-nav,body.briefing .review-arrow,body.briefing .result-reopen{display:none!important}
