/* Musical world only. Real WebGL plaza has an equivalent native artist selector. */
.sg-territory { --sg-line:#34303a; --sg-muted:#b2aaba; --sg-ink:#f7f4fb; color:var(--sg-ink); font:inherit; margin:28px 0; min-width:0; box-sizing:border-box; }
.sg-territory *, .sg-territory *::before, .sg-territory *::after { box-sizing:border-box; }
/* Necessary against theme display:flex/grid on controls and panels. */
.sg-territory [hidden] { display:none !important; }
.sg-territory :is(h2,h3,p,ul) { margin:0; padding:0; }
.sg-territory a { color:inherit; text-decoration:none; }
.sg-territory a:hover { color:#67e6df; }
.sg-territory :is(a,button,input,select):focus-visible { outline:2px solid #67e6df; outline-offset:4px; }
.sg-territory button { min-height:44px; max-width:100%; width:auto; border:1px solid #48414f; border-radius:10px; padding:10px 14px; margin:0; background:transparent; color:var(--sg-ink); font:inherit; font-size:13px; font-weight:700; cursor:pointer; line-height:1.35; text-transform:none; letter-spacing:normal; box-shadow:none; white-space:normal; }
.sg-territory button:hover { border-color:#67e6df; color:#67e6df; background:#12191d; }
.sg-territory button:disabled { opacity:.42; cursor:default; }
.sg-territory__head { display:flex; gap:24px; align-items:flex-end; justify-content:space-between; padding:8px 0 24px; border-bottom:1px solid var(--sg-line); }
.sg-territory .sg-territory__eyebrow { color:#a979ff; font-size:10px; letter-spacing:.12em; text-transform:uppercase; font-weight:750; margin-bottom:10px; }
.sg-territory .sg-territory__head h2 { font-size:clamp(28px,3.2vw,42px); line-height:1.1; letter-spacing:-.045em; font-weight:750; margin-bottom:12px; }
.sg-territory__head p { color:var(--sg-muted); font-size:14px; line-height:1.55; }
.sg-territory .sg-territory__total { flex-shrink:0; font-size:12px; }
.sg-territory__total strong { color:#ff8d36; font-size:26px; margin-right:3px; }
.sg-territory__filters { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; align-items:end; gap:12px; padding:22px 0; margin:0; }
.sg-territory__filters label { display:grid; gap:8px; min-width:0; color:var(--sg-muted); font-size:12px; font-weight:600; }
/* Mejora Colectiva's global form label rule adds 12px and uppercase with !important. */
.sg-territory .sg-territory__filters label { margin:0 !important; color:var(--sg-muted) !important; font-size:12px !important; font-weight:600 !important; line-height:1.4 !important; text-transform:none !important; letter-spacing:normal !important; }
.sg-territory :is(input,select) { display:block; width:100%; max-width:100%; min-width:0; height:48px; color:var(--sg-ink); background:#0c0b11; border:1px solid #48414f; border-radius:10px; padding:0 14px; font:inherit; font-size:16px; }
.sg-territory input::placeholder { color:#a69cab; opacity:1; }
.sg-territory__filters button[type=submit] { height:48px; background:#ff8d36; color:#190d05; border-color:#ff8d36; }
.sg-territory .sg-territory__surprise { height:48px; color:#d9c4ff; border-color:#634584; }
.sg-territory .sg-territory__surprise span { color:#a979ff; margin-right:6px; }
.sg-territory__filters > a { display:inline-flex; align-items:center; min-height:44px; font-size:12px; color:#67e6df; }
.sg-territory.is-enhanced .sg-territory__filters { grid-template-columns:minmax(0,1fr) auto auto; }
.sg-territory.is-enhanced .sg-territory__city-filter,.sg-territory.is-enhanced [data-sg-reset] { display:none; }
.sg-territory__toolbar { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:20px 0; border-top:1px solid var(--sg-line); scroll-margin-top:90px; }
.sg-territory__breadcrumb { display:flex; align-items:center; gap:16px; min-width:0; }
.sg-territory__breadcrumb h3 { font-size:clamp(20px,2.1vw,27px); line-height:1.2; letter-spacing:-.025em; overflow-wrap:anywhere; }
.sg-territory__breadcrumb p { font-size:12px; color:var(--sg-muted); margin-top:6px; }
.sg-territory [data-sg-back] { flex-shrink:0; color:#67e6df; }
.sg-territory__views { display:flex; gap:4px; flex-shrink:0; padding:4px; border:1px solid var(--sg-line); border-radius:12px; }
.sg-territory__views button { border-color:transparent; min-height:40px; padding:8px 14px; }
.sg-territory__views [aria-pressed=true] { background:#2c213c; color:#dfcaff; border-color:#71528d; }
.sg-territory__layout { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr); gap:24px; align-items:start; }
.sg-territory:not(.is-enhanced) .sg-territory__layout { display:block; }
.sg-territory__world { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr); gap:24px; align-items:stretch; }
.sg-territory__geography { min-width:0; display:flex; flex-direction:column; }
.sg-territory__map { height:460px; min-height:280px; background:#171d25; border:1px solid #343943; border-radius:14px; isolation:isolate; z-index:0; }
.sg-territory.is-map-expanded .sg-territory__map { height:min(70svh,640px); }
.sg-territory .sg-territory__map .leaflet-tile-pane { filter:grayscale(1) invert(1) brightness(.75) contrast(.85); }
.sg-territory__map .leaflet-control-attribution { background:#10141cec; color:#d1d6df; font-size:10px; }
.sg-territory__map .leaflet-control-attribution a { color:#b5dce5; }
.sg-territory__map .leaflet-bar { border:1px solid #53505b; box-shadow:none; }
.sg-territory__map .leaflet-bar a { width:44px; height:44px; line-height:44px; background:#11111a; color:#f7f4fb; border-color:#48414f; }
.sg-territory__map-tools { display:flex; gap:12px; flex-wrap:wrap; align-items:center; justify-content:space-between; padding:10px 0; }
.sg-territory__map-tools span { flex:1 1 180px; font-size:11px; color:var(--sg-muted); }
.sg-territory__map-tools button { font-size:11px; }
.sg-territory .sg-territory__privacy { font-size:10px; color:#aaa2b1; line-height:1.6; }
.sg-territory__pin { background:transparent; border:0; }
.sg-territory__pin::after { content:''; position:absolute; left:12px; bottom:-3px; width:34px; height:10px; border-radius:50%; background:#0007; transform:skewX(-25deg); z-index:-1; }
.sg-territory__pin-sign { display:flex; flex-direction:column; align-items:center; justify-content:center; width:50px; height:42px; border:1px solid #ffd3ad; border-radius:7px; background:#ff8d36; color:#211007; box-shadow:4px 5px 0 #6e391e; }
.sg-territory__pin-sign::after { content:''; width:4px; height:9px; background:#ffd4b1; position:absolute; bottom:0; }
.sg-territory__pin-sign b { font-size:17px; line-height:1.1; }
.sg-territory__pin-sign small { font-size:8px; font-weight:700; }
.sg-territory__map-label { background:#16111e; color:#f7f4fb; border:1px solid #846896; font:600 12px/1.4 inherit; }
.sg-territory__zone { display:grid; gap:8px; }
.sg-territory__cities { padding:4px 0 0; min-width:0; }
.sg-territory .sg-territory__city-door { width:100%; display:flex; align-items:center; gap:10px; min-height:72px; padding:12px 0; border:0; border-bottom:1px solid var(--sg-line); border-radius:0; text-align:left; }
.sg-territory .sg-territory__city-door:hover { background:#17101f; padding-left:8px; padding-right:8px; }
.sg-territory__city-copy { flex:1; min-width:0; display:grid; gap:5px; }
.sg-territory__city-copy strong { font-size:14px; line-height:1.35; overflow-wrap:anywhere; }
.sg-territory__city-copy small { font-size:11px; color:var(--sg-muted); font-weight:400; }
.sg-territory__city-faces { display:flex; padding-left:9px; }
.sg-territory__mini-face { position:relative; display:grid; place-items:center; width:32px; height:32px; margin-left:-9px; border-radius:50%; background:#3b294d; border:2px solid #100c15; overflow:hidden; }
.sg-territory__mini-face img { position:absolute; width:100%; height:100%; object-fit:cover; }
.sg-territory__door-arrow { color:#a979ff; font-size:20px; }
.sg-territory [data-sg-cities-more] { width:100%; margin-top:12px; }
.sg-territory__plaza { min-width:0; }
.sg-territory__pages { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:16px 0; }
.sg-territory__pages span { color:var(--sg-muted); text-align:center; font-size:12px; }
.sg-territory__pages button { font-size:12px; }
.sg-territory__detail { min-width:0; border-top:2px solid #a979ff; border-bottom:1px solid var(--sg-line); padding:18px 0 22px; position:sticky; top:90px; scroll-margin-top:90px; }
.sg-territory__detail-symbol { display:block; color:#a979ff; font-size:64px; font-weight:700; margin:24px 0; }
.sg-territory__detail h3 { font-size:25px; line-height:1.2; letter-spacing:-.025em; overflow-wrap:anywhere; }
.sg-territory .sg-territory__detail-hint { color:var(--sg-muted); font-size:12px; line-height:1.6; margin:14px 0; }
.sg-territory__detail-top { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:20px; }
.sg-territory__detail-top .sg-territory__eyebrow { margin:0; }
.sg-territory .sg-territory__close { border:0; padding:10px 0 10px 12px; color:var(--sg-muted); }
.sg-territory__identity { display:flex; gap:14px; align-items:center; }
.sg-territory__identity > div { min-width:0; }
.sg-territory__identity p { font-size:12px; color:var(--sg-muted); margin-top:6px; }
.sg-territory__detail-photo { flex:0 0 72px; position:relative; display:grid; place-items:center; width:72px; height:72px; border-radius:10px; overflow:hidden; background:#493259; font-size:32px; }
.sg-territory__detail-photo img { position:absolute; width:100%; height:100%; object-fit:cover; }
.sg-territory .sg-territory__genres { margin:18px 0; font-size:12px; color:#cebcd9; line-height:1.55; }
.sg-territory .sg-territory__process { padding:8px 0; margin:0 0 12px; font-size:11px; color:#b2aaba; border-top:1px solid var(--sg-line); }
.sg-territory__actions { display:flex; flex-wrap:wrap; gap:8px; }
.sg-territory__actions > * { flex:1 1 auto; display:inline-flex; align-items:center; justify-content:center; padding:10px; min-height:44px; border:1px solid #48414f; border-radius:10px; font-size:12px; font-weight:650; }
.sg-territory .sg-territory__listen { color:#221007; background:#ff8d36; border-color:#ff8d36; }
.sg-territory .sg-territory__save-status { margin-top:10px; color:#b9dbc9; font-size:11px; line-height:1.5; }
.sg-territory__media { margin-top:20px; border-top:1px solid var(--sg-line); }
.sg-territory__media-tabs { display:flex; flex-wrap:wrap; gap:12px; }
.sg-territory__media-tabs button { padding:8px 0; border:0; border-bottom:2px solid transparent; border-radius:0; color:var(--sg-muted); font-size:11px; }
.sg-territory__media-tabs [aria-pressed=true] { border-bottom-color:#ff8d36; color:#ffb580; }
.sg-territory__player:not(:empty) { padding-top:12px; display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.sg-territory__player a,.sg-territory__media-hint { font-size:11px; color:#b2aaba; }
.sg-territory .sg-territory__stop { padding:8px 0; border:0; font-size:10px; margin-left:auto; }
.sg-territory__embed { width:100%; min-width:0; border:0; border-radius:10px; background:#141018; }
.sg-territory__embed--spotify { height:352px; }
.sg-territory__embed--youtube { aspect-ratio:16/9; height:auto; }
.sg-territory__embed--instagram { height:420px; }
.sg-territory .sg-territory__profile { display:inline-flex; min-height:44px; align-items:center; color:#67e6df; font-size:12px; margin-top:14px; }
.sg-territory__results { min-width:0; }
.sg-territory__result-head { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:10px; padding:4px 0 16px; border-bottom:1px solid var(--sg-line); }
.sg-territory__result-head h3 { font-size:18px; }
.sg-territory__result-head p { font-size:11px; color:var(--sg-muted); }
.sg-territory__list { list-style:none; }
.sg-territory__artist { display:flex; align-items:flex-start; gap:14px; padding:18px 0; border-bottom:1px solid var(--sg-line); }
.sg-territory__portrait { display:grid; place-items:center; flex:0 0 64px; width:64px; height:64px; border-radius:10px; background:#3c284f; font-size:28px; overflow:hidden; }
.sg-territory__portrait img { width:100%; height:100%; object-fit:cover; }
.sg-territory__artist-copy { min-width:0; }
.sg-territory__artist-heading { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.sg-territory .sg-territory__artist-name { border:0; padding:0; min-height:44px; text-align:left; font-size:16px; overflow-wrap:anywhere; }
.sg-territory__artist-heading a { font-weight:700; }
.sg-territory__active { color:#a9d7be; font-size:9px; }
.sg-territory__artist-copy p { color:var(--sg-muted); font-size:11px; line-height:1.5; }
.sg-territory__links { display:flex; flex-wrap:wrap; gap:0 14px; }
.sg-territory__links a { min-height:44px; display:inline-flex; align-items:center; font-size:11px; color:#c6b8d5; }
.sg-territory__more { margin-top:18px; width:100%; }
.sg-territory [data-sg-empty],.sg-territory [data-sg-plaza-empty],.sg-territory [data-sg-cities-empty] { padding:20px 0; color:var(--sg-muted); font-size:13px; line-height:1.6; }
@media (max-width:1100px) {
  .sg-territory__layout { grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr); gap:20px; }
}
@media (max-width:900px) {
  .sg-territory__layout { grid-template-columns:minmax(0,1fr); }
  .sg-territory__detail { position:static; }
  .sg-territory__world { grid-template-columns:minmax(0,1.25fr) minmax(230px,1fr); gap:20px; }
  .sg-territory__map { height:440px; }
  .sg-territory__city-faces .sg-territory__mini-face:nth-child(3) { display:none; }
  .sg-territory__detail-body { max-width:100%; }
}
@media (max-width:600px) {
  .sg-territory { margin:16px 0; }
  .sg-territory__head { flex-direction:column; align-items:flex-start; gap:14px; padding-bottom:18px; }
  .sg-territory .sg-territory__head h2 { font-size:30px; }
  .sg-territory__total strong { font-size:20px; }
  .sg-territory__filters,.sg-territory.is-enhanced .sg-territory__filters { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; padding:18px 0; }
  .sg-territory__filters label { grid-column:1/-1; }
  .sg-territory__filters button { width:100%; }
  .sg-territory__toolbar { align-items:flex-start; flex-wrap:wrap; gap:14px; padding:18px 0; }
  .sg-territory__breadcrumb { flex:1 1 100%; gap:12px; align-items:flex-start; }
  .sg-territory__breadcrumb h3 { font-size:23px; }
  .sg-territory [data-sg-back] { padding:10px; font-size:11px; }
  .sg-territory__views { width:100%; }
  .sg-territory__views button { flex:1; min-height:44px; }
  .sg-territory__world { grid-template-columns:minmax(0,1fr); gap:22px; }
  .sg-territory__map { height:310px; }
  .sg-territory.is-map-expanded .sg-territory__map { height:60svh; }
  .sg-territory__city-faces .sg-territory__mini-face:nth-child(3) { display:grid; }
  .sg-territory__pages { gap:8px; }
  .sg-territory__pages button { padding:10px; font-size:11px; }
  .sg-territory__pages span { font-size:11px; }
  .sg-territory__identity h3 { font-size:25px; }
  .sg-territory__actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sg-territory__actions > :first-child { grid-column:1/-1; }
  .sg-territory__media-tabs { gap:20px; }
  .sg-territory__media-tabs button { font-size:12px; }
}
@media (prefers-reduced-motion:reduce) {
}
/* Radius and plaza controls share the existing community language. */
.sg-territory.is-enhanced .sg-territory__radius-filter { display:none; }
.sg-territory:not(.is-enhanced) .sg-territory__filters { grid-template-columns:repeat(3,minmax(0,1fr)); }
.sg-territory__area { display:flex; align-items:center; gap:18px; padding:0 0 20px; }
.sg-territory__area p { color:var(--sg-muted); font-size:11px; line-height:1.5; }
.sg-territory__radius { display:flex; gap:5px; flex:0 0 auto; }
.sg-territory__radius button { padding:9px 14px; }
.sg-territory__radius [aria-pressed=true] { color:#ffbc85; background:#302116; border-color:#a86939; }
.sg-territory[data-mode=plaza]:not(.has-artist) .sg-territory__layout { grid-template-columns:minmax(0,1fr); }
.sg-territory__scene { position:relative; overflow:hidden; isolation:isolate; min-width:0; border:1px solid #51415e; border-radius:14px; background:#12121f; }
.sg-territory__stage { width:100%; height:clamp(390px,48vw,560px); min-width:0; }
.sg-territory__stage canvas { display:block; width:100%; height:100%; max-width:100%; cursor:grab; }
.sg-territory__stage canvas:active { cursor:grabbing; }
.sg-territory__stage canvas:focus-visible { outline:3px solid #67e6df; outline-offset:-5px; }
.sg-territory__scene-heading { position:absolute; pointer-events:none; top:20px; left:22px; display:grid; gap:5px; }
.sg-territory__scene-heading span { font-size:14px; letter-spacing:.2em; font-weight:800; color:#d6b7f5; }
.sg-territory__scene-heading small { font-size:9px; letter-spacing:.1em; color:#b4a5c1; }
.sg-territory .sg-territory__scene-note { position:absolute; pointer-events:none; bottom:16px; left:16px; right:16px; width:fit-content; max-width:calc(100% - 32px); margin:0 auto; padding:7px 12px; font-size:11px; line-height:1.5; border-radius:6px; background:#12121fe6; color:#d7cadd; text-align:center; }
.sg-territory__camera { display:flex; flex-wrap:wrap; align-items:center; gap:6px; padding:12px 0; }
.sg-territory__camera button { min-width:44px; padding:8px 12px; font-size:16px; }
.sg-territory__camera [data-sg-move=home],.sg-territory__camera [data-sg-touch] { font-size:12px; }
.sg-territory__camera [aria-pressed=true] { background:#2c213c; border-color:#a979ff; }
.sg-territory [data-sg-touch] { display:none; margin-left:auto; }
.sg-territory .sg-territory__dock-title { font-size:12px; padding:8px 0 14px; color:#f7f4fb; font-weight:600; }
.sg-territory__dock-title span { color:var(--sg-muted); font-size:11px; font-weight:400; }
.sg-territory__boards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 16px; }
.sg-territory .sg-territory__board { display:flex; align-items:center; text-align:left; gap:8px; min-width:0; padding:12px 0; border:0; border-top:1px solid #393040; border-radius:0; background:transparent; }
.sg-territory .sg-territory__board[aria-pressed=true] { color:#ffd1a8; border-color:#ff8d36; background:#ff8d360a; }
.sg-territory__board-number { flex:0 0 18px; color:#ffb77d; font-size:10px; font-weight:600; }
.sg-territory__board-copy { min-width:0; display:grid; gap:4px; }
.sg-territory__board-copy strong { font-size:12px; line-height:1.4; overflow-wrap:anywhere; }
.sg-territory__board-copy small { color:var(--sg-muted); font-size:10px; font-weight:400; line-height:1.4; overflow-wrap:anywhere; }
.sg-territory__board-photo { position:relative; flex:0 0 34px; display:grid; place-items:center; width:34px; height:38px; overflow:hidden; border-radius:5px; background:#40314e; color:#d6b7ef; font-size:20px; }
.sg-territory__board-photo img { position:absolute; width:100%; height:100%; object-fit:cover; }
.sg-territory[data-sg3d=unavailable] .sg-territory__stage { height:150px; }
.sg-territory [data-sg-3d-retry] { margin:12px 0; }
.sg-territory__arrange { display:flex; flex-wrap:wrap; align-items:center; gap:7px; padding:0 0 12px; }
.sg-territory__arrange > span { color:var(--sg-muted); font-size:12px; margin-right:6px; }
.sg-territory__arrange [aria-pressed=true] { border-color:#a979ff; background:#281d36; color:#e1caff; }
.sg-territory__stage.maplibregl-map { font:inherit; }
.sg-territory__stage .maplibregl-ctrl-attrib { background:#f7f4fb; color:#25212a; font-size:10px; padding:3px 7px; line-height:1.5; }
.sg-territory__stage .maplibregl-ctrl-attrib a { color:#25212a; text-decoration:underline; }
.sg-territory__stage .maplibregl-control-container { position:absolute; inset:0; pointer-events:none; }
.sg-territory__stage .maplibregl-ctrl { pointer-events:auto; }
.sg-territory__scene-heading { top:12px; left:12px; padding:9px 12px; background:#12121feb; border-radius:8px; }
.sg-territory .sg-territory__scene-note { bottom:34px; font-size:10px; }
.sg-territory .sg-geo-sign { display:flex; align-items:center; gap:6px; width:126px; min-height:54px; padding:6px; background:#17121ef5; border:1px solid var(--geo-color); border-bottom:4px solid var(--geo-color); border-radius:8px; color:#f7f4fb; text-align:left; box-shadow:0 3px 8px #0005; cursor:pointer; }
.sg-territory .sg-geo-sign > span:last-child { font-size:10px; line-height:1.3; overflow:hidden; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow-wrap:anywhere; }
.sg-territory .sg-geo-sign[aria-pressed=true] { outline:3px solid #ff8d36; outline-offset:3px; }
.sg-territory .sg-geo-sign--group { display:grid; width:142px; min-height:49px; gap:3px; padding:8px 10px; }
.sg-territory .sg-geo-sign--group > span { font-size:12px; font-weight:700; }
.sg-territory .sg-geo-sign--group small { color:#d2c9da; font-size:10px; line-height:1.3; }
.sg-territory .sg-geo-sign--group::after { content:''; position:absolute; width:2px; height:40px; background:var(--geo-color); top:100%; left:50%; pointer-events:none; }
.sg-territory .sg-geo-photo { position:relative; display:grid; place-items:center; flex:0 0 36px; width:36px; height:40px; overflow:hidden; background:#3b2b49; border-radius:4px; font-size:20px; }
.sg-territory .sg-geo-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.sg-territory__list-photo { position:relative; display:grid; place-items:center; width:100%; height:100%; }
.sg-territory__list-photo img { position:absolute; inset:0; }
.sg-territory__camera [data-sg-move=tilt] { font-size:12px; }
.sg-territory .sg-territory__dock-title { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.sg-territory [data-sg-group-clear] { font-size:11px; flex-shrink:0; }
@media (min-width:901px) {
 .sg-territory.has-artist .sg-territory__boards { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .sg-territory.has-artist .sg-territory__stage { height:480px; }
}
@media (pointer:coarse) {
 .sg-territory [data-sg-touch] { display:block; }
}
@media (max-width:600px) {
 .sg-territory:not(.is-enhanced) .sg-territory__filters { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
 .sg-territory__area { flex-direction:column; align-items:stretch; gap:10px; padding-bottom:16px; }
 .sg-territory__radius button { flex:1; }
 .sg-territory__stage { height:390px; }
 .sg-territory__scene-heading { top:16px; left:16px; }
 .sg-territory__scene-heading span { font-size:12px; }
 .sg-territory__boards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 12px; }
 .sg-territory__board-number { flex-basis:12px; }
 .sg-territory__board-photo { display:none; }
 .sg-territory__board-copy strong { font-size:12px; }
 .sg-territory__camera { gap:5px; }
 .sg-territory__camera button { padding:8px 11px; }
 .sg-territory__scene-note { font-size:10px; }
}

/* The total stays outside the canvas so it never covers a nearby cluster. */
.sg-territory__scene-heading { position:static; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px; border-radius:0; padding:12px 14px; background:#17121e; }
@media (max-width:600px) {
 .sg-territory__board-photo { display:grid; flex-basis:30px; width:30px; height:34px; }
 .sg-territory__board-number { display:none; }
 .sg-territory__camera { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
 .sg-territory__camera [data-sg-move=home],.sg-territory__camera [data-sg-move=tilt] { grid-column:span 2; }
 .sg-territory__camera [data-sg-touch] { grid-column:1/-1; width:100%; }
}

/* Legend describes the kind of object, not an unexplained genre color. */
.sg-territory .sg-territory__explainer { color:#c9c1d2; font-size:12px; line-height:1.6; margin:0 0 10px; max-width:72ch; }
.sg-territory__legend { display:flex; flex-wrap:wrap; gap:10px 18px; padding:0 0 15px; font-size:11px; color:#ded6e6; }
.sg-territory__legend span { display:inline-flex; align-items:center; gap:6px; }
.sg-territory__legend i { display:inline-grid; place-items:center; width:11px; height:11px; font-style:normal; }
.sg-territory__legend .sg-key-artist { border-radius:50%; background:#ff8d36; }
.sg-territory__legend .sg-key-style { background:#a979ff; transform:skewY(-15deg); }
.sg-territory__legend .sg-key-cluster { border:1px solid #b2aaba; border-radius:3px; width:14px; height:14px; color:#eee; }
.sg-territory .sg-geo-sign--group { width:156px; gap:4px; }
.sg-territory .sg-geo-sign--group > span { font-size:11px; line-height:1.3; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.sg-territory .sg-geo-sign--group small { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.sg-territory .sg-geo-sign .sg-geo-action { color:#ddd3e6; font-size:9px; font-weight:400; padding-top:2px; }
.sg-territory .sg-geo-sign--cluster { border-style:dashed; border-bottom-style:solid; }
.sg-territory .sg-geo-sign[aria-pressed=true] { outline-color:#67e6df; }
.sg-territory .sg-territory__group-description { padding:0 0 14px; color:#c9c1d2; font-size:12px; line-height:1.6; }

/* One cartographic surface from the world view down to each locality. */
.sg-territory[data-mode=plaza]:not(.has-artist) .sg-territory__layout { grid-template-columns:minmax(0,1fr); }
.sg-territory[data-mode=plaza] .sg-territory__plaza { order:0; }
.sg-territory[data-mode=plaza] .sg-territory__world { order:2; display:block; grid-column:1/-1; }
.sg-territory[data-mode=plaza] [data-sg-cities] { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 24px; }
.sg-territory__legend .sg-key-city { border-radius:3px; background:#67e6df; }
@media(max-width:900px) { .sg-territory[data-mode=plaza] [data-sg-cities] { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .sg-territory[data-mode=plaza] [data-sg-cities] { grid-template-columns:minmax(0,1fr); } }

/* Atlas 2.19: compact touch targets, in-map sheets and a viewport-only dialog. */
.sg-territory[data-mode=plaza] .sg-territory__layout { grid-template-columns:minmax(0,1fr); }
.sg-territory .sg-territory__scene { position:relative; overflow:hidden; background:#11151c; border-radius:14px; isolation:isolate; }
.sg-territory .sg-territory__stage { height:520px; touch-action:none; }
.sg-territory .sg-territory__stage canvas { touch-action:none; }
.sg-territory .sg-territory__scene-heading { padding:6px 10px; min-height:56px; position:relative; top:auto; left:auto; z-index:4; background:#13101b; pointer-events:auto; }
.sg-territory__scene-heading > span { display:grid; gap:4px; font-size:11px; }
.sg-territory__scene-heading small { font-size:9px; color:#b2aaba; letter-spacing:.04em; }
.sg-territory__scene-heading > div { display:flex; gap:5px; }
.sg-territory__scene-heading button { min-width:44px; font-size:11px; padding:8px; }
.sg-territory .sg-territory__scene-note { pointer-events:none; max-width:90%; bottom:36px; font-size:10px; background:#12121edb; }
.sg-territory .sg-geo-bubble { display:grid; place-items:center; width:48px; height:48px; min-height:48px; padding:4px; border:0; border-radius:50%; color:#fff; background:var(--geo-ring,var(--geo-color)); box-shadow:0 2px 12px #0008; }
.sg-territory .sg-geo-bubble > strong { display:grid; place-items:center; background:#17121e; width:40px; height:40px; border-radius:50%; font-size:16px; }
.sg-territory .sg-geo-bubble--artist { width:44px; height:44px; min-height:44px; padding:3px; }
.sg-territory .sg-geo-bubble .sg-geo-photo { width:38px; height:38px; border-radius:50%; }
.sg-territory .sg-geo-bubble[aria-pressed=true] { outline:3px solid #67e6df; outline-offset:3px; z-index:2; }
.sg-territory .sg-geo-arrow { pointer-events:none; font-size:15px; text-shadow:0 1px 3px #000; }
.sg-territory .sg-geo-caption { position:absolute; top:100%; margin-top:6px; background:#15101fea; color:#fff; padding:5px 8px; font-size:10px; line-height:1.4; border-radius:5px; width:max-content; max-width:160px; pointer-events:none; opacity:0; }
.sg-territory .sg-geo-bubble:hover .sg-geo-caption,.sg-territory .sg-geo-bubble:focus-visible .sg-geo-caption,.sg-territory .sg-geo-bubble[aria-pressed=true] .sg-geo-caption { opacity:1; }
.sg-territory .sg-territory__scene > .sg-territory__detail { position:absolute; z-index:3; top:64px; right:8px; bottom:auto; width:340px; max-width:calc(100% - 16px); max-height:calc(100% - 102px); overflow:auto; overscroll-behavior:contain; padding:14px; border:1px solid #756181; border-radius:12px; background:#100d18f5; box-shadow:0 10px 35px #0007; }
.sg-territory .sg-territory__detail-top { margin-bottom:12px; }
.sg-territory .sg-territory__detail h3 { font-size:23px; }
.sg-territory .sg-territory__detail-photo { width:52px; height:52px; flex-basis:52px; }
.sg-territory .sg-territory__group-artist { display:flex; align-items:center; gap:12px; width:100%; border:0; border-bottom:1px solid #34303a; border-radius:0; padding:7px; text-align:left; }
.sg-territory__group-artist .sg-territory__mini-face { margin:0; flex-shrink:0; }
.sg-territory .sg-territory__insights { border-top:1px solid #34303a; border-bottom:1px solid #34303a; padding:14px 0; margin:0 0 14px; }
.sg-territory__insights > strong { font-size:12px; }
.sg-territory__insights small { display:block; font-size:10px; color:#b2aaba; line-height:1.5; margin-top:9px; }
.sg-territory [data-sg-stats] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px 28px; margin-top:10px; }
.sg-territory__stat { display:grid; grid-template-columns:minmax(70px,1fr) 1fr auto; align-items:center; gap:10px; font-size:11px; }
.sg-territory__stat span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sg-territory__stat i { height:5px; background:linear-gradient(to right,var(--color) var(--share),#302b38 var(--share)); border-radius:3px; }
.sg-territory__stat b { font-size:10px; color:#d1c7dd; }
.sg-territory .sg-territory__connections { border-top:1px solid #34303a; padding:12px 0; }
.sg-territory__connections p,.sg-territory__connections small { color:#b2aaba; font-size:11px; line-height:1.6; }
.sg-territory [data-sg-connection-list] { max-height:170px; overflow:auto; }
.sg-territory__edge { display:flex; align-items:center; gap:10px; border-bottom:1px solid #34303a; }
.sg-territory__edge button { border:0; text-align:left; font-size:11px; padding:8px 0; }
.sg-territory__edge span { color:#67e6df; }
.sg-territory .maplibregl-ctrl-attrib-button { min-width:24px; min-height:24px; padding:0; }
.sg-territory.is-fullscreen { position:fixed; z-index:1000000; inset:0; width:100%; height:100dvh; margin:0; padding:8px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left)); background:#050509; display:flex; flex-direction:column; }
.sg-territory.is-fullscreen > :not(.sg-territory__layout),.sg-territory.is-fullscreen .sg-territory__world,.sg-territory.is-fullscreen .sg-territory__dock,.sg-territory.is-fullscreen .sg-territory__privacy,.sg-territory.is-fullscreen .sg-territory__explainer,.sg-territory.is-fullscreen .sg-territory__legend,.sg-territory.is-fullscreen .sg-territory__insights,.sg-territory.is-fullscreen .sg-territory__connections { display:none; }
.sg-territory.is-fullscreen .sg-territory__layout,.sg-territory.is-fullscreen .sg-territory__plaza { display:flex; flex-direction:column; align-items:stretch; width:100%; min-height:0; flex:1; }
.sg-territory.is-fullscreen .sg-territory__scene { display:flex; flex-direction:column; min-height:0; flex:1; }
.sg-territory.is-fullscreen .sg-territory__stage { min-height:0; height:auto; flex:1; }
.sg-territory.is-fullscreen .sg-territory__camera { padding:8px 0 0; margin:0; }
.sg-territory.is-fullscreen .sg-territory__arrange { padding-bottom:8px; }
@media(max-width:700px) {
 .sg-territory .sg-territory__stage { height:480px; }
 .sg-territory .sg-territory__scene > .sg-territory__detail { top:auto; bottom:30px; left:8px; right:8px; width:auto; max-height:48%; }
 .sg-territory .sg-territory__scene-heading small { max-width:120px; font-size:8px; }
 .sg-territory [data-sg-stats] { grid-template-columns:minmax(0,1fr); }
 .sg-territory .sg-territory__camera { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); }
 .sg-territory .sg-territory__camera button { padding:7px 2px; font-size:11px; }
 .sg-territory .sg-territory__camera [data-sg-move=tilt] { grid-column:auto; font-size:10px; }
 .sg-territory.is-fullscreen .sg-territory__stage { height:auto; }
 .sg-territory__arrange button { font-size:11px; padding:8px; }
}
