:root{color-scheme:dark;--bg:#101b1c;--panel:#152225;--line:#2d3b3d;--text:#e7e6dc;--muted:#9aa9a7;--copper:#dc9a71;--teal:#68b7b1;--gold:#d4b566;--accent:#c9b98b;font:14px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button{border:1px solid var(--line);background:#1d2c2f;border-radius:7px}button:hover{background:#26383b;border-color:#64756c}input,select{border:1px solid var(--line);color:var(--text);background:#101b1e;border-radius:6px;padding:9px 10px;min-width:0}input::placeholder{color:#84938f}input[aria-invalid="true"]{border-color:#df9984}input[type="checkbox"]{accent-color:var(--accent);width:16px;height:16px}h1,h2,h3,p{margin:0}.eyebrow{font-size:10px;letter-spacing:2.2px;font-weight:700;color:var(--accent)}.masthead{height:82px;padding:15px 26px;display:flex;align-items:center;gap:36px;border-bottom:1px solid var(--line);background:#111e20}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand-mark{width:38px;height:38px;color:var(--accent)}h1{font-size:23px;letter-spacing:-.5px;font-weight:620;line-height:1.3}.preview-tag{font-size:9px;color:#a4b0a8;border:1px solid #3a4946;padding:3px 5px;border-radius:3px;vertical-align:middle;margin-left:10px;letter-spacing:1px}.seed-block{display:flex;flex-direction:column;gap:2px}.seed-label{color:var(--muted);font-size:11px}.seed-value{font:12px/1.5 ui-monospace,Consolas,monospace;background:transparent;border:0;padding:0;letter-spacing:.3px}.seed-value span{margin-left:8px;color:#7d938a}.dimensions{margin-left:auto;display:flex;gap:3px;padding:4px;background:#0e191b;border:1px solid var(--line);border-radius:9px}.dimension{padding:9px 17px;background:transparent;border:0;color:var(--muted);font-weight:600;font-size:12px}.dimension.active{background:#2b3d37;color:#e3e8db}.dimension-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#93b593;margin-right:7px}.dimension#nether .dimension-dot{background:#ca8071}.dimension#nether.active{background:#49312e}.workspace{height:calc(100svh - 82px);min-height:520px;display:grid;grid-template-columns:306px minmax(0,1fr)}.catalog{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line);background:var(--panel)}h2{font-size:21px;font-weight:580;letter-spacing:-.5px;margin:5px 0 6px}.filters{padding:0 22px 18px}h3{font-size:11px;font-weight:650;letter-spacing:.35px;color:#b9c2b8;margin-bottom:9px}.layer-option{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:7px;margin:6px 0;cursor:pointer;background:#19282b}.layer-option input{margin:0;flex-shrink:0}.layer-option strong{font-size:12px;font-weight:500}.layer-count{margin-left:auto;font:11px ui-monospace,Consolas,monospace;color:var(--muted)}.swatch{display:inline-block;width:9px;height:9px;flex-shrink:0;background:var(--copper);transform:rotate(45deg)}.swatch.monument{background:var(--teal);border-radius:50%;transform:none}.swatch.bastion{background:var(--gold);transform:none}.position-form{margin:0 22px 18px;border-top:1px solid var(--line);padding-top:16px}.position-form h3{display:flex;justify-content:space-between;gap:6px}.position-form h3 span{font-size:10px;font-weight:400;color:var(--muted)}.position-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}.position-fields label{display:flex;align-items:center;gap:8px;font:11px ui-monospace,Consolas,monospace;color:var(--muted)}.position-fields input{width:100%;font:12px ui-monospace,Consolas,monospace;padding:9px}.nearest-button{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:9px;margin-top:10px;background:#bbae80;color:#17211d;border-color:#bbae80;font-size:12px;font-weight:700}.nearest-button:hover{background:#cabe92;border-color:#cabe92}.nearest-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}.position-note{font-size:10px;color:#9dab9e;margin-top:7px}.error{font-size:11px;color:#ecb09b;margin-top:8px}.list-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.list-heading strong{font-size:11px;font-weight:500;color:var(--muted)}.list-heading select{font-size:10px;padding:5px 7px;border:0;background:none;width:110px}.structure-list{flex:1;min-height:0;overflow:auto;scrollbar-color:#455652 transparent;scrollbar-width:thin}.structure-row{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid #243437;border-radius:0;background:none;padding:13px 19px}.structure-row:hover{background:#213337}.structure-row.selected{background:#293d38;box-shadow:inset 3px 0 var(--accent)}.structure-row-top{display:flex;align-items:center;gap:9px;font-size:12px}.structure-row-top .distance{margin-left:auto;font:10px ui-monospace,Consolas,monospace;color:#9aaa9f}.structure-row-sub{font-size:10px;color:var(--muted);margin:5px 0 0 18px}.visited-indicator{font-size:10px;color:#bac59e}.empty-list{padding:25px 20px;color:var(--muted);font-size:12px}.catalog-foot{padding:12px 19px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.catalog-foot p{margin-top:8px}.visit-actions{display:flex;gap:6px}.visit-actions button{font-size:10px;padding:6px 10px}.map-panel{position:relative;min-width:0;min-height:0;overflow:hidden;background:#101b1c}#atlas-map{display:block;width:100%;height:100%;outline-offset:-4px;touch-action:none}.map-heading{position:absolute;top:24px;left:28px;pointer-events:none}.map-heading>div{display:flex;align-items:center;gap:8px}.map-heading strong{font-size:16px;font-weight:580}.live-dot{height:6px;width:6px;border-radius:50%;background:#91b491;box-shadow:0 0 15px #749e7855}.map-subtitle{font-size:9px;font-weight:600;letter-spacing:1.6px;color:var(--muted);margin-left:6px}.map-controls{position:absolute;bottom:48px;left:25px;display:flex;gap:4px}.map-controls button{width:35px;height:35px;background:#17272bea;font-size:21px}.map-controls .fit-button{width:auto;font-size:11px;padding:0 12px;margin-left:5px}.coordinate-hud{position:absolute;left:26px;bottom:22px;font:10px ui-monospace,Consolas,monospace;color:#8da19a;pointer-events:none}.detail-panel{position:absolute;right:25px;bottom:55px;width:310px;background:#18282bee;border:1px solid #546457;border-radius:11px;box-shadow:0 15px 40px #0005;padding:18px;backdrop-filter:blur(12px)}.detail-top{display:flex;align-items:center;gap:9px}.detail-top h2{font-size:17px;flex:1;margin:0}.detail-close{border:0;background:none;padding:0 4px;font-size:23px;color:var(--muted)}.detail-location{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:11px 0 14px;font:11px ui-monospace,Consolas,monospace;color:#b8c6b9}.copy-button{font-size:10px;padding:5px 8px}.detail-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px}.detail-metric{border:1px solid #35473f;background:#1c302d;padding:9px 11px;border-radius:6px}.detail-metric span{display:block;font-size:9px;color:#a6b8a6}.detail-metric strong{font:18px/1.45 ui-monospace,Consolas,monospace;color:#ebdcc0}.detail-note{font-size:10px;color:#95aa9d;margin-top:12px;line-height:1.55}.detail-visit{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;margin-top:13px;font-size:11px;background:#2c3c32;border-color:#637454}.detail-visit.visited{background:#48543a;color:#ececcf}.detail-distance{font-size:10px;color:#9eb2a2;margin-top:10px}.toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);background:#d9d4bd;color:#1c2926;padding:10px 18px;border-radius:7px;font-size:12px;box-shadow:0 6px 20px #0004;z-index:50;max-width:90%;text-align:center}.noscript{position:fixed;inset:100px 30px auto;background:#d5b1a0;color:#221d19;padding:20px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}
@media(min-width:1500px){.workspace{grid-template-columns:330px minmax(0,1fr)}.structure-row{padding-top:15px;padding-bottom:15px}}
@media(max-width:1100px){.masthead{gap:20px;padding-left:18px;padding-right:18px}.seed-block{display:none}.detail-panel{width:280px;right:16px}.workspace{grid-template-columns:285px minmax(0,1fr)}}
@media(max-width:720px){.masthead{height:auto;min-height:76px;flex-wrap:wrap;gap:12px;padding:14px 16px}.brand-mark{width:30px;height:30px}.brand{gap:9px}.brand h1{font-size:20px}.preview-tag{font-size:8px}.dimensions{margin-left:auto}.dimension{padding:8px 10px;font-size:11px}.workspace{height:auto;min-height:0;display:flex;flex-direction:column}.map-panel{order:0;height:65svh;min-height:420px}.catalog{order:1;border-right:0;border-top:1px solid var(--line)}.filters{padding:0 20px 12px}#layer-options{display:flex;gap:8px}.layer-option{flex:1;padding:10px 9px;gap:7px}.layer-count{font-size:10px}.layer-option strong{font-size:11px}.position-form{margin:0 20px 15px}.position-fields{grid-template-columns:1fr 1fr}.position-fields input{padding:10px}.nearest-button{padding:11px}.list-heading{padding:10px 20px}.structure-list{max-height:390px;min-height:100px;flex:none}.catalog-foot{padding:15px 20px}.map-heading{left:17px;top:17px}.map-heading strong{font-size:15px}.map-controls{left:16px;bottom:44px}.coordinate-hud{left:17px;bottom:20px}.detail-panel{right:12px;bottom:89px;width:min(290px,calc(100% - 24px));max-height:calc(100% - 145px);overflow:auto;padding:14px}.detail-metric strong{font-size:16px}.detail-metric{padding:7px 9px}.detail-note{font-size:9px}.detail-visit{padding:9px}.toast{bottom:16px;font-size:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Keep one natural-flow scrollbar for the entire structure catalog. */
.workspace{min-height:0;grid-template-columns:320px minmax(0,1fr)}
.catalog{position:relative;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-color:#53665f transparent;scrollbar-width:thin;scrollbar-gutter:stable}
.catalog>*{flex:0 0 auto}
.structure-list{flex:none;min-height:0;max-height:none;overflow:visible}
.structure-row{min-height:64px}
.structure-row-top{min-width:0;flex-wrap:wrap;gap:7px}
.structure-row-top>span:not(.swatch):not(.distance):not(.visited-indicator):not(.farm-label){min-width:0;overflow-wrap:anywhere}
.structure-row-top .distance{white-space:nowrap;flex-shrink:0}
.structure-row-sub{overflow-wrap:anywhere}
.visit-actions{flex-wrap:wrap;gap:7px}
.catalog-foot summary{cursor:pointer;font-size:11px;font-weight:600;color:#c1cabb;padding:3px 0}
.catalog-foot summary::marker{color:var(--accent)}
.catalog-foot summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.catalog-foot[open] .visit-actions{margin-top:10px}
#export-shared-map,#export-farms{font-size:10px;padding:6px 10px;margin-top:8px}
.farm-filters{display:grid;gap:6px;padding:0 18px 14px}
.farm-filters label{font-size:11px;color:var(--muted)}
.farm-filters select{width:100%;font-size:12px}
.farm-label{display:inline-block;font-size:9px;font-weight:600;line-height:1.4;padding:2px 5px;border:1px solid;border-radius:4px;white-space:nowrap;margin:7px 0 0 18px}
.farm-label.trial-farm{color:#dfb3ff;border-color:#956db6;background:#382c47}
.farm-label.guardian-farm{color:#99edff;border-color:#4e9cae;background:#193b45}
.swatch.trial-farm{background:#d59aff;box-shadow:0 0 0 2px #152225,0 0 0 3px #d59aff}
.swatch.guardian-farm{background:#63ddff;border-radius:50%;transform:none;box-shadow:0 0 0 2px #152225,0 0 0 3px #63ddff}
.detail-farm{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:10px 12px;margin-top:12px;font-size:11px;background:#273238;border-color:#53676b}
.detail-farm.trial-farm[aria-pressed="true"]{background:#3c2f4b;border-color:#bc87e6;color:#eccfff}
.detail-farm.guardian-farm[aria-pressed="true"]{background:#1b3e49;border-color:#63bdd2;color:#c3f3ff}

/* Map text remains readable over the biome colors. */
.map-heading,.coordinate-hud{background:#101d20e8;border:1px solid #354844;border-radius:6px;box-shadow:0 2px 8px #0002}
.map-heading{padding:7px 10px;max-width:calc(100% - 48px)}
.coordinate-hud{padding:4px 7px;max-width:calc(100% - 48px)}
.detail-panel{max-height:calc(100% - 125px);overflow-y:auto;overscroll-behavior-y:contain;scrollbar-color:#637768 transparent;scrollbar-width:thin;z-index:5}
.map-controls{z-index:6}

@media(min-width:1500px){.workspace{grid-template-columns:340px minmax(0,1fr)}}
@media(max-width:1100px){
  .workspace{grid-template-columns:300px minmax(0,1fr)}
  .map-heading{top:16px;left:25px}
  .detail-panel{bottom:190px;max-height:calc(100% - 215px)}
}
@media(min-width:721px) and (max-height:550px){
  .masthead{height:68px;padding-top:8px;padding-bottom:8px}
  .workspace{height:calc(100svh - 68px)}
  .map-heading{top:12px;left:16px;padding:5px 8px}
  .detail-panel{top:76px;bottom:auto;max-height:calc(100% - 165px)}
}
@media(min-width:721px) and (max-width:1100px) and (max-height:550px){
  .detail-panel{top:128px;max-height:calc(100% - 318px)}
}
@media(max-width:720px){
  .workspace{height:auto;min-height:0}
  .catalog{overflow:visible;overscroll-behavior-y:auto;scrollbar-gutter:auto}
  .structure-list{flex:none;min-height:0;max-height:none;overflow:visible}
  #layer-options{flex-wrap:wrap}
  .layer-option{flex:1 1 140px}
  .farm-filters{padding:0 20px 14px}
  .map-heading{top:14px;left:16px;max-width:calc(100% - 32px)}
  .coordinate-hud{left:16px;bottom:15px;max-width:calc(100% - 150px)}
  .detail-panel{top:auto;bottom:163px;max-height:calc(100% - 190px)}
}

/* Custom waypoints stay in the same natural catalog flow as structures. */
.waypoint-section{padding:15px 18px;border-top:1px solid var(--line);font-size:12px}
.waypoint-section>summary{cursor:pointer;color:#c1cabb;font-size:11px;font-weight:650;padding:3px 0}
.waypoint-section>summary::marker{color:var(--accent)}
.waypoint-section>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
#waypoint-count{float:right;margin-left:10px;color:var(--muted);font:10px/1.6 ui-monospace,Consolas,monospace}
.waypoint-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;margin:10px 0 8px}
.waypoint-heading button{padding:6px 9px;min-height:32px;font-size:11px;white-space:nowrap}
.waypoint-tools{display:flex;gap:4px;align-items:center}
.waypoint-tools button{padding-left:7px;padding-right:7px;font-size:10px}
.mark-export-button{margin-top:8px;padding:6px 8px;font-size:10px}
#waypoint-search{width:100%;min-width:0;height:32px;padding:6px 8px;font-size:11px}
.waypoint-form{margin:12px 0;padding:12px;background:#101b1e;border:1px solid #3b4f46;border-radius:8px}
.waypoint-form h3{font-size:12px;color:#d0d7c7;margin-bottom:11px}
.waypoint-form label{display:flex;flex-direction:column;gap:5px;min-width:0;color:#aebfb0;font-size:11px}
.waypoint-form>label{margin-bottom:10px}
.waypoint-form input,.waypoint-form select{width:100%;min-width:0;padding:8px;font-size:12px}
.waypoint-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:10px}
.waypoint-fields input{font:11px/1.5 ui-monospace,Consolas,monospace}
.waypoint-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.waypoint-actions button{flex:1;min-height:38px;padding:8px 11px;font-size:11px}
.detail-panel .waypoint-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.detail-panel .waypoint-actions button{min-width:0;overflow-wrap:anywhere}
.detail-panel .waypoint-actions>button:last-child:nth-child(odd){grid-column:1/-1}
.waypoint-actions button[type="submit"]{background:#bbae80;border-color:#bbae80;color:#17211d;font-weight:650}
.waypoint-actions button[type="submit"]:hover{background:#cabe92;border-color:#cabe92}
.waypoint-list{display:flex;flex-direction:column;gap:4px;min-width:0;max-height:min(280px,40svh);overflow-y:auto;overflow-x:hidden;padding:2px;scrollbar-color:#63786b #102022;scrollbar-width:thin;scrollbar-gutter:stable;overscroll-behavior-y:auto;touch-action:pan-y pinch-zoom}
.waypoint-list:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
.waypoint-row{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:center;column-gap:6px;flex:none;min-width:0;min-height:52px;padding:7px 8px;background:#19282b;border:1px solid var(--line);border-radius:6px}
.waypoint-go{display:flex;align-items:center;gap:8px;width:100%;min-width:0;min-height:36px;padding:0;overflow:hidden;text-align:left;font-size:12px;border:0;border-radius:3px;background:transparent}
.waypoint-go:hover{background:transparent;color:#f4edcf}
.waypoint-go>*{min-width:0}
.waypoint-go .swatch,.waypoint-swatch{flex:none;width:13px;height:13px;margin-top:3px;border-radius:50%;transform:none;box-shadow:0 0 0 1px #071516,0 0 0 2px #9fb4a555}
.waypoint-go .swatch,.waypoint-go .waypoint-swatch{margin-top:0}
.waypoint-label{display:flex;flex:1;flex-direction:column;min-width:0;overflow:hidden}
.waypoint-label strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:16px}
.waypoint-meta{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;color:var(--muted);font:10px/14px ui-monospace,Consolas,monospace}
.waypoint-row.selected{border-color:#a99d72;background:#22362f}
.waypoint-swatch{display:inline-block;background:#ffd56a}
.waypoint-more{width:28px;height:28px;min-height:28px;padding:0;border-color:transparent;background:transparent;color:#aebfae;font-size:21px;line-height:1}
.waypoint-more:hover,.waypoint-more[aria-expanded="true"]{border-color:#587260;background:#2b4035;color:var(--text)}
.waypoint-row-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 0;padding-left:21px}
.waypoint-row-actions button{min-height:30px;padding:5px 9px;font-size:10px}
.waypoint-row-actions button:last-child{color:#e7b09d}
#waypoint-empty{margin-top:9px;color:var(--muted);font-size:11px;line-height:1.5}
.waypoint-option{display:flex;align-items:center;gap:9px;margin-top:10px;font-size:12px;cursor:pointer}
.waypoint-option input{flex:none;margin:0}
#export-waypoints{font-size:10px;padding:6px 10px;margin-top:8px}

/* Cursor coordinates and the compact toolbar share the lower map. */
.coordinate-hud{left:25px;bottom:16px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:6px 8px;max-width:calc(100% - 240px);font-size:11px;line-height:1.5;color:#c0d1c3}
.map-controls{left:25px;bottom:72px;max-width:calc(100% - 50px);flex-wrap:wrap;gap:5px}
.map-controls button{width:28px;height:28px;min-height:28px;font-size:18px}
.map-controls .fit-button{width:auto;padding:0 8px;font-size:10px;white-space:nowrap}
.map-controls .fit-button{margin-left:0}
@media(max-width:1100px){
  .detail-panel{bottom:238px;max-height:calc(100% - 265px)}
}
@media(min-width:721px) and (max-width:1100px) and (max-height:550px){
  .detail-panel{top:auto;bottom:138px;max-height:calc(100% - 158px)}
}
@media(max-width:720px){
  .waypoint-section{padding:15px 20px}
  .waypoint-heading button{min-height:36px}
  #waypoint-search{height:36px}
  .waypoint-actions button{min-height:40px}
  .waypoint-row{min-height:56px;padding-top:9px;padding-bottom:9px}
  .waypoint-row-actions button{min-height:32px;padding:5px 9px}
  .coordinate-hud{left:16px;bottom:15px;max-width:calc(100% - 160px);font-size:10px}
  .map-controls{left:16px;bottom:72px;max-width:calc(100% - 32px)}
  .map-controls button{width:32px;height:32px;min-height:32px}
  .detail-panel{top:auto;bottom:238px;max-height:calc(100% - 265px)}
}

/* Compact catalog sections keep optional controls out of the result list. */
.filters{padding:14px 18px;border-bottom:1px solid var(--line)}
.filters>summary,.position-section>summary{cursor:pointer;color:#c1cabb;font-size:11px;font-weight:650;padding:3px 0}
.filters>summary::marker,.position-section>summary::marker{color:var(--accent)}
.filters>summary:focus-visible,.position-section>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.filters[open]>summary{margin-bottom:10px}
.layer-option{gap:8px;padding:8px 9px;margin:5px 0;min-height:36px}
.layer-option strong{flex:1;min-width:0;line-height:1.35}
.layer-count{flex:none;white-space:nowrap}
.position-section{padding:12px 18px;border-top:1px solid var(--line)}
.position-section #position-dimension{float:right;margin-left:10px;color:var(--muted);font:10px/1.6 ui-monospace,Consolas,monospace}
.position-section .position-form{margin:12px 0 0;padding:0;border:0}
.catalog>.waypoint-option{margin:0;padding:12px 18px;border-bottom:1px solid var(--line)}
.waypoint-section{padding-top:12px;padding-bottom:12px;border-top:0;border-bottom:1px solid var(--line)}


/* Mouse coordinates and the biome share a single, compact HUD backdrop. */
.coordinate-hud{max-width:calc(100% - 50px)}
.coordinate-hud #biome-hud{position:static;width:auto;max-width:100%;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;z-index:auto;font:10px/1.5 ui-monospace,Consolas,monospace;color:#adc7b6}
@media(max-width:720px){
  .filters{padding:14px 20px}
  .position-section{padding:12px 20px}
  .catalog>.waypoint-option{padding:12px 20px}
  .coordinate-hud{max-width:calc(100% - 32px)}
}


/* The simplified map only reserves space for its toolbar and two-row HUD. */
.detail-panel{top:auto;bottom:142px;max-height:calc(100% - 200px)}
.coordinate-hud{left:25px;bottom:16px;max-width:calc(100% - 50px)}
@media(max-width:720px){.coordinate-hud{left:16px;bottom:15px;max-width:calc(100% - 32px)}}

/* The third dimension tab and larger result sets fit the same compact layout. */
.dimension#end .dimension-dot{background:#bea6e1}
.dimension#end.active{background:#3b314e;color:#eee1ff}
.dimensions{min-width:0;max-width:100%}
.dimension{white-space:nowrap}
.layer-option strong{overflow-wrap:anywhere}
.list-pagination{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;margin:12px 18px 18px}
.list-pagination button{min-height:38px;padding:8px 10px;font-size:11px}
.list-pagination button:disabled,.list-pagination button:disabled:hover{cursor:default;opacity:.45;background:#19282b;border-color:var(--line)}
#list-page{min-width:0;text-align:center;font:10px/1.5 ui-monospace,Consolas,monospace;color:var(--muted);overflow-wrap:anywhere}
@media(max-width:720px){.list-pagination{display:flex;flex-wrap:wrap;justify-content:space-between;margin:12px 20px 18px}.list-pagination button{min-height:40px}#list-page{flex:1 1 80px}}
@media(max-width:420px){
  .dimensions{width:100%;margin-left:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .dimension{padding:8px 6px}
  .dimension-dot{margin-right:6px}
}

/* Visited checkboxes sit beside each result button, keeping separate controls. */
.swatch{border-radius:50%;transform:none}
.structure-list-item{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;min-width:0;border-bottom:1px solid #243437}
.structure-list-item .structure-row{min-width:0;padding-left:4px;padding-right:14px;border-bottom:0}
.structure-check{width:16px;height:16px;margin:0;padding:0;justify-self:center;cursor:pointer;accent-color:var(--accent)}

/* Layer visibility and underground masks remain separate from visit progress. */
.layer-master{display:flex;align-items:center;gap:9px;min-height:38px;padding:8px 10px;margin:0 0 9px;border:1px solid #506448;border-radius:6px;background:#24332b;color:#d6dfca;font-size:12px;font-weight:600;cursor:pointer}
.layer-master input,.underground-section input[type="checkbox"]{flex:none;margin:0;padding:0;width:16px;height:16px}
.underground-section{padding:12px 18px;border-bottom:1px solid var(--line)}
.underground-section>summary{cursor:pointer;color:#c1cabb;font-size:11px;font-weight:650;padding:3px 0}
.underground-section>summary::marker{color:var(--accent)}
.underground-section>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.underground-section label{display:flex;align-items:center;gap:9px;min-width:0;font-size:12px;cursor:pointer}
.underground-section>label{margin-top:11px;min-height:28px}
#underground-controls{display:grid;gap:6px;margin-top:11px;min-width:0}
#underground-controls>label{justify-content:space-between;gap:10px;font-size:11px;color:#b4c4b6}
#underground-y{width:95px;padding:7px 8px;font:11px/1.5 ui-monospace,Consolas,monospace}
#underground-options{min-width:0}
.underground-section .cave-option{gap:8px;min-height:36px;padding:8px 10px;margin:5px 0;border:1px solid var(--line);border-radius:6px;background:#19282b;color:#c4d3c5;font-size:11px}
.cave-option:has(input:checked){border-color:#597160;background:#20332b}
.cave-option .swatch,.cave-swatch{display:inline-block;flex:none;width:11px;height:11px;border-radius:50%;box-shadow:0 0 0 1px #c4d3c544}
.underground-toggle:has(input:disabled){color:var(--muted);cursor:default}
#underground-note{margin-top:10px;color:var(--muted);font:10px/1.5 ui-monospace,Consolas,monospace}
@media(max-width:720px){.underground-section{padding:12px 20px}.layer-master{min-height:40px}.underground-section .cave-option{min-height:38px}}

/* Shape and custom-color choices use the same small glyphs in list and details. */
.waypoint-color-fields,.waypoint-appearance{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:8px;margin-bottom:10px}
.waypoint-color-fields label,.waypoint-appearance label{min-width:0}
#waypoint-shape,#waypoint-color{width:100%;min-width:0}
.waypoint-form #waypoint-custom-color{width:100%;height:36px;padding:3px;cursor:pointer}
#waypoint-custom-color::-webkit-color-swatch-wrapper{padding:0}
#waypoint-custom-color::-webkit-color-swatch{border:0;border-radius:3px}
#waypoint-custom-color::-moz-color-swatch{border:0;border-radius:3px}
.waypoint-style-preview{display:flex;align-items:center;gap:8px;min-width:0;min-height:36px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:#152225;color:#cfdecb;font-size:11px;line-height:1.4}
.waypoint-style-preview .waypoint-swatch{margin-top:0}
.waypoint-swatch{position:relative}
.waypoint-swatch.item-swatch{display:inline-flex;align-items:center;justify-content:center;flex:none;width:20px;height:20px;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;clip-path:none;transform:none}
.waypoint-swatch.item-swatch img{display:block;width:100%;height:100%;image-rendering:pixelated;object-fit:contain;filter:drop-shadow(0 1px 1px #0008)}
.detail-top .waypoint-swatch.item-swatch{width:24px;height:24px}
.waypoint-style-preview .waypoint-swatch.item-swatch{width:24px;height:24px}
.waypoint-form select:disabled,.waypoint-form input:disabled{opacity:.45;cursor:default}
.waypoint-item-picker{margin:0 0 10px;padding:8px;border:1px solid var(--line);border-radius:6px;background:#132124;min-width:0}
.waypoint-item-picker>summary{cursor:pointer;font-size:11px;color:#cfdecb}
.waypoint-item-picker>input[type="search"]{width:100%;min-width:0;margin:8px 0;padding:7px;font-size:11px}
.waypoint-item-results{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;max-height:184px;overflow:auto;scrollbar-width:thin;scrollbar-color:#63786b transparent;overscroll-behavior:contain;min-width:0}
.waypoint-item-choice{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:6px 3px;border:1px solid transparent;border-radius:5px;background:#1b2e2e;font-size:9px;line-height:1.3}
.waypoint-item-choice>.item-swatch{width:24px;height:24px}
.waypoint-item-choice>span:last-child{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}
.waypoint-item-choice:hover{background:#304238;border-color:#74826a}
.waypoint-item-choice[aria-pressed="true"]{background:#3b4935;border-color:var(--accent)}
.waypoint-item-choice:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.swatch.structure-swatch{display:inline-flex;align-items:center;justify-content:center;flex:none;width:16px;height:16px;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;transform:none}
.structure-swatch>img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 1px 1px #0008)}
.structure-swatch.trial-farm{outline:2px solid #d59aff;outline-offset:2px;border-radius:50%}
.structure-swatch.guardian-farm{outline:2px solid #63ddff;outline-offset:2px;border-radius:50%}
.detail-top .structure-swatch{width:20px;height:20px}
.waypoint-swatch.shape-circle{border-radius:50%;clip-path:none}
.waypoint-swatch.shape-square{border-radius:0;clip-path:none}
.waypoint-swatch.shape-diamond{border-radius:0;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);--waypoint-outline-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20100%20100'%3E%3Cpolygon%20points='50,0%20100,50%2050,100%200,50'%20fill='none'%20stroke='white'%20stroke-width='16'%20stroke-linejoin='round'/%3E%3C/svg%3E")}
.waypoint-swatch.shape-triangle{border-radius:0;clip-path:polygon(50% 0,100% 100%,0 100%);--waypoint-outline-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20100%20100'%3E%3Cpolygon%20points='50,0%20100,100%200,100'%20fill='none'%20stroke='white'%20stroke-width='16'%20stroke-linejoin='round'/%3E%3C/svg%3E")}
.waypoint-swatch.shape-star{border-radius:0;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);--waypoint-outline-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20100%20100'%3E%3Cpolygon%20points='50,0%2061,35%2098,35%2068,57%2079,91%2050,70%2021,91%2032,57%202,35%2039,35'%20fill='none'%20stroke='white'%20stroke-width='16'%20stroke-linejoin='round'/%3E%3C/svg%3E")}
.waypoint-swatch:is(.shape-diamond,.shape-triangle,.shape-star)::after{content:"";position:absolute;inset:0;background:#dcebe1b3;-webkit-mask-image:var(--waypoint-outline-image);mask-image:var(--waypoint-outline-image);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;pointer-events:none}

/* Keep desktop scroll overflow inside the viewport and the positioned catalog. */
@media(min-width:721px){
  html{height:100%;overflow:hidden}
  body{height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}
  .workspace{height:auto;grid-template-rows:minmax(0,1fr);overflow:hidden}
}

/* Mark visibility controls share one collapsed section and one padding inset. */
.marks-visibility{padding:12px 18px;border-bottom:1px solid var(--line)}
.marks-visibility>summary{cursor:pointer;color:#c1cabb;font-size:11px;font-weight:650;padding:3px 0}
.marks-visibility>summary::marker{color:var(--accent)}
.marks-visibility>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.marks-visibility-controls{display:grid;gap:10px;margin-top:10px;min-width:0}
.marks-visibility .waypoint-option{margin:0;padding:0;border:0;font-size:12px}
.marks-visibility .waypoint-option input{flex:none;width:16px;height:16px;margin:0;padding:0}
.marks-visibility-field{display:grid;grid-template-columns:85px minmax(0,1fr);align-items:center;gap:8px;min-width:0;color:var(--muted);font-size:11px}
.marks-visibility-field select{width:100%;min-width:0;padding:8px;font-size:11px}
.marks-visibility+.catalog-foot{border-top:0}
@media(max-width:720px){.marks-visibility{padding:12px 20px}}

/* Roof portal annotations use compact rows without changing census progress. */
.portal-section{padding:12px 18px;border-bottom:1px solid var(--line)}
.portal-section>summary{cursor:pointer;color:#c1cabb;font-size:11px;font-weight:650;padding:3px 0}
.portal-section>summary::marker{color:var(--accent)}
.portal-section>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
#portal-count,#gateway-count{float:right;margin-left:10px;color:var(--muted);font:10px/1.6 ui-monospace,Consolas,monospace}
.portal-toggle,.portal-form .portal-check{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:11px;cursor:pointer}
.portal-toggle{margin-top:10px}
.portal-toggle input,.portal-form .portal-check input{flex:none;width:16px;height:16px;margin:0;padding:0}
.portal-form .portal-check{margin:10px 0}
#portal-search,#gateway-search{width:100%;min-width:0;height:32px;padding:6px 8px;font-size:11px}
.portal-list{display:flex;flex-direction:column;gap:4px;max-height:min(280px,40svh);overflow:auto;min-width:0;padding:2px;scrollbar-color:#63786b #102022;scrollbar-width:thin;scrollbar-gutter:stable;overscroll-behavior-y:auto;touch-action:pan-y pinch-zoom}
.portal-list:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
.portal-swatch{display:inline-block;flex:none;position:relative;width:12px;height:16px;border:2px solid #c1a3ef;border-radius:2px;background:#493063}
.portal-swatch.candidate{border-style:dashed;background:#302c3d}
.portal-warning{flex:none;color:#ffe39b;font-weight:800;font-size:12px}
.portal-badge{display:block;color:#d4baa1;font-size:9px;line-height:12px}
.portal-note{margin-top:8px;color:var(--muted);font-size:10px;line-height:1.5}
.portal-list .waypoint-go{gap:7px}
.portal-list .waypoint-label strong{font-size:12px}
.portal-list .portal-row{min-height:52px}
.portal-heading button{min-height:32px}
.portal-sort-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin-top:8px}
.portal-sort-row select,.portal-sort-row button{min-width:0;min-height:30px;padding:6px 8px;font-size:10px}
.portal-sort-row button{white-space:nowrap}
#toggle-grid svg{display:block;width:14px;height:14px;margin:auto;fill:none;stroke:currentColor;stroke-width:1.25}
#toggle-grid[aria-pressed="true"]{color:var(--accent)}
#toggle-grid[aria-pressed="false"]{color:var(--muted)}
@media(max-width:720px){.portal-section{padding:12px 20px}#portal-search,#gateway-search{height:36px}.portal-heading button{min-height:36px}}

.terrain-section{padding:12px 18px;border-bottom:1px solid var(--line)}
.terrain-section>summary{cursor:pointer;color:#c1cabb;font-size:11px;font-weight:650;padding:3px 0}
.terrain-section>summary::marker{color:var(--accent)}
.terrain-section>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.terrain-choice{display:grid;grid-template-columns:85px minmax(0,1fr);align-items:center;gap:8px;margin-top:10px;color:var(--muted);font-size:11px}
.terrain-choice select{width:100%;min-width:0;padding:8px;font-size:11px}
.terrain-note{color:var(--muted);font-size:10px;line-height:1.5;margin:8px 0 0}
.terrain-note a{color:var(--accent)}
@media(max-width:720px){.terrain-section{padding:12px 20px}}
/* A small language control keeps the dimension tabs together. */
.language-toggle{margin-left:auto;flex:none;padding:7px 10px;min-height:32px;font-size:11px;white-space:nowrap}
.player-guide-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:#1d2c2f;color:var(--text);text-decoration:none;font-size:11px;font-weight:600;white-space:nowrap}
.player-guide-link:hover{background:#26383b;border-color:#64756c}
.player-guide-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.help-symbol{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border:1px solid #a7b8a5;border-radius:50%;color:var(--accent);font-size:10px;font-weight:700;line-height:1}
.language-toggle+.dimensions{margin-left:0}
html[lang="zh-CN"]{font-family:system-ui,"Microsoft YaHei","PingFang SC",sans-serif}
@media(max-width:720px){.language-toggle{padding:7px 9px}.language-toggle+.dimensions{margin-left:auto}}
@media(max-width:420px){.language-toggle+.dimensions{margin-left:0}}

/* The header's search results overlay the map; they never add page height. */
.masthead{display:grid;grid-template-columns:auto auto minmax(160px,1fr) auto auto auto;gap:18px;position:relative;z-index:20}
.masthead>.brand{min-width:0}
.masthead>.language-toggle,.masthead>.dimensions{margin-left:0}
.global-search-shell{position:relative;min-width:0;max-width:420px;justify-self:stretch}
.global-search-input-row{display:flex;align-items:center;gap:7px;min-width:0;border:1px solid #465b50;border-radius:7px;background:#0e191b;padding:0 8px}
.global-search-input-row:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.global-search-input-row>svg{flex:none;width:15px;height:15px;fill:none;stroke:#a6b8a8;stroke-width:1.5}
#global-search{width:100%;height:36px;min-width:0;border:0;border-radius:0;background:transparent;padding:7px 0;font-size:12px;outline:none}
#global-search::-webkit-search-cancel-button{display:none}
#global-search-clear{flex:none;width:24px;height:24px;min-height:0;padding:0;border:0;background:transparent;color:var(--muted);font-size:19px;line-height:1}
#global-search-clear:hover{color:var(--text);background:#283b36}
.global-search-panel{position:absolute;top:calc(100% + 7px);left:0;width:min(440px,calc(100vw - 32px));max-height:min(420px,calc(100dvh - 170px));display:flex;flex-direction:column;min-height:0;border:1px solid #5a7060;border-radius:9px;background:#142325;box-shadow:0 12px 35px #0008;overflow:hidden;z-index:30}
.global-search-status{flex:none;padding:10px 12px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.global-search-results{min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#63786b #102022;overscroll-behavior:contain;padding:4px}
.global-search-result,.global-search-layer{display:flex;align-items:center;gap:10px;width:100%;min-width:0;min-height:45px;padding:8px 9px;border:0;border-radius:5px;background:transparent;color:var(--text);text-align:left;font-size:12px;cursor:pointer}
.global-search-result:hover,.global-search-layer:hover{background:#263b34}
.global-search-result:focus-visible,.global-search-layer:focus-within{outline:2px solid var(--accent);outline-offset:-2px;background:#293e36}
.global-search-label{flex:1;min-width:0;overflow-wrap:anywhere}
.global-search-label>strong{display:block;font-weight:600}
.global-search-meta{display:block;min-width:0;overflow-wrap:anywhere;margin-top:3px;color:var(--muted);font-size:10px;line-height:1.45}
.global-search-badge{flex:none;margin-left:auto;max-width:110px;font-size:9px;line-height:1.4;color:#d1c49c;background:#2a3930;border:1px solid #465947;border-radius:4px;padding:2px 5px;white-space:normal;text-align:center}
.global-search-layer>input{flex:none;width:16px;height:16px;margin:0;padding:0}
.global-search-layer:has(input:disabled){cursor:default;color:#a9b2ab;opacity:.8}
.global-search-empty{padding:16px 12px;color:var(--muted);font-size:12px}
@media(max-width:1240px){.masthead{grid-template-columns:auto minmax(160px,1fr) auto auto auto;gap:12px}.masthead>.seed-block{display:none}}
@media(max-width:980px){
  .masthead{height:auto;min-height:104px;padding:10px 18px;grid-template-columns:minmax(0,1fr) auto auto auto;grid-template-areas:"brand help language dimensions" "search search search search";row-gap:8px}
  .masthead>.brand{grid-area:brand}.masthead>.player-guide-link{grid-area:help}.masthead>.language-toggle{grid-area:language}.masthead>.dimensions{grid-area:dimensions}
  .masthead .dimension{padding:8px 10px;font-size:11px}
  .global-search-shell{grid-area:search;max-width:none}
}
@media(max-width:720px){
  .masthead{height:auto;min-height:0;padding:12px 16px;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"brand help language" "search search search" "dimensions dimensions dimensions";gap:9px 12px}
  .masthead>.dimensions{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-left:0}
  .global-search-panel{max-height:min(360px,calc(100dvh - 200px))}
}
@media(max-width:420px){
  .masthead{column-gap:8px}
  .masthead .brand{gap:7px}.masthead .brand-mark{width:24px;height:24px}
  .masthead .brand h1{font-size:18px}.masthead .preview-tag{display:none}
  .player-guide-link{padding:7px 8px;gap:5px}
}

/* Railway drafts have their own compact, independently scrollable lists. */
.railway-section{padding:12px 18px;border-bottom:1px solid var(--line)}
.railway-section>summary{cursor:pointer;color:#c1cabb;font-size:11px;font-weight:650;padding:3px 0}
.railway-section>summary::marker{color:var(--accent)}
.railway-section>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
#railway-count{float:right;color:var(--muted);font:10px/1.6 ui-monospace,Consolas,monospace}
.railway-check{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:11px;cursor:pointer}
.railway-check>input{flex:none;width:16px;height:16px;margin:0;padding:0}
.railway-note{margin:8px 0;color:var(--muted);font-size:10px;line-height:1.5;overflow-wrap:anywhere}
.railway-list-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0 6px;font-size:11px}
.railway-list-heading>strong{font-weight:600;color:#c1cabb}
.railway-list-heading button,.railway-edit{font-size:10px;padding:5px 8px;min-height:28px}
.railway-list{max-height:min(185px,28svh);overflow:auto;scrollbar-width:thin;scrollbar-color:#63786b #102022;padding:2px;min-width:0;touch-action:pan-y pinch-zoom}
.railway-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px;border-bottom:1px solid #31423e}
.railway-go{display:flex;align-items:center;gap:8px;min-width:0;min-height:49px;padding:7px 5px;text-align:left;border:0;background:transparent}
.railway-go:hover{background:#263b34}
.railway-label{min-width:0;flex:1}
.railway-label>strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600}
.railway-meta{display:block;margin-top:4px;color:var(--muted);font:10px/1.4 ui-monospace,Consolas,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.railway-swatch{display:inline-block;flex:none;width:16px;height:4px;border-radius:2px;background:#65d5d0;box-shadow:0 0 0 1px #dcebe144}
.railway-swatch.station{width:11px;height:11px;border-radius:50%;background:#d5c288}
.railway-form{margin-top:10px}
.railway-form textarea{width:100%;min-width:0;resize:vertical;max-height:240px;border:1px solid var(--line);color:var(--text);background:#101b1e;border-radius:6px;padding:8px;font:11px/1.55 ui-monospace,Consolas,monospace}
.railway-form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.railway-route-fields{display:grid;grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);gap:8px}
.railway-route-fields input[type="color"]{width:100%;height:32px;padding:3px}
.railway-form .railway-check{flex-direction:row}
.railway-stops-title{display:block;margin:12px 0 6px;font-size:11px;font-weight:600}
.railway-stop-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}
.railway-stop-add select,.railway-stop-add button{min-width:0;font-size:10px;padding:6px;min-height:30px}
.railway-stops{max-height:160px;overflow:auto;scrollbar-width:thin;margin-top:7px}
.railway-stop-row{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,28px);gap:4px;align-items:center;margin:5px 0}
.railway-stop-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.railway-stop-row button{height:30px;padding:0;font-size:14px}
.railway-stop-row button:disabled{opacity:.35;cursor:default}
.railway-file-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.railway-file-actions button{font-size:10px;padding:6px 8px;min-height:30px}
.railway-detail-stops-title{margin:12px 0 6px}
.railway-detail-stops{display:grid;gap:5px;max-height:200px;overflow:auto;scrollbar-width:thin}
.railway-detail-stops button{text-align:left;padding:7px 9px;font-size:11px;overflow-wrap:anywhere}
.railway-map-actions{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.railway-map-actions button{font-size:10px;padding:6px 8px;min-height:30px}
.railway-point-list{display:grid;gap:4px;max-height:135px;overflow:auto;scrollbar-width:thin;scrollbar-color:#63786b #102022;margin-top:8px}
.railway-point{padding:6px 8px;text-align:left;font:10px/1.4 ui-monospace,Consolas,monospace;min-height:30px;overflow-wrap:anywhere}
.railway-point.selected{background:#2d433b;border-color:var(--accent)}
.railway-point-inspector{margin-top:8px;padding:9px;border:1px solid #455d50;border-radius:6px;background:#142521}
.railway-point-inspector>strong{display:block;font-size:11px;overflow-wrap:anywhere;margin-bottom:7px}
.railway-point-inspector .railway-check{margin:5px 0 8px}
.railway-point-inspector input:disabled{opacity:.6}
.railway-point-inspector select{max-width:100%;font-size:11px}
.railway-point-inspector select:disabled{opacity:.6}
.terrain-boundary-option{display:flex;align-items:center;gap:8px;margin-top:10px;color:var(--muted);font-size:11px}
.terrain-boundary-option input{flex:none;margin:0}
@media(max-width:720px){.railway-section{padding:12px 20px}.railway-list-heading button,.railway-edit{min-height:32px}.railway-go{min-height:52px}}

/* A single inspector edits the selected point; the point list stays compact. */
.railway-point-list{gap:3px;max-height:min(125px,18svh);padding:1px;overscroll-behavior:contain}
.railway-point{min-height:26px;padding:4px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.railway-point-inspector{padding:8px;margin-top:6px;min-width:0}
.railway-point-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:6px;font-size:11px}
.railway-point-order{display:flex;gap:4px}
.railway-point-order button{min-height:25px;height:25px;min-width:25px;padding:0 5px;font-size:14px}
.railway-point-order button:disabled{opacity:.35;cursor:default}
.railway-point-coordinates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.railway-point-coordinates input{width:100%;min-width:0;padding:6px;font:11px/1.3 ui-monospace,Consolas,monospace}
.railway-point-links{display:grid;gap:6px;margin-top:7px}
.railway-point-links .railway-check{margin:0;font-size:10px}
.railway-point-links select{min-width:0;width:100%;padding:6px}
.railway-auto-stops{display:flex;flex-wrap:wrap;gap:4px;max-height:75px;overflow:auto;padding:1px}
.railway-stop-chip{display:inline-block;border:1px solid #455d50;border-radius:4px;padding:3px 6px;max-width:100%;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.railway-stop-chip+.railway-stop-chip::before{content:'→ ';color:var(--muted)}
.railway-form [aria-invalid="true"]{border-color:#e39480}
.railway-map-actions button[aria-pressed="true"]{background:#2d433b;border-color:var(--accent)}

.map-controls #toggle-grid,.map-controls #toggle-railway{display:grid;place-items:center;padding:0;line-height:1}
.map-controls #toggle-grid svg,.map-controls #toggle-railway svg{display:block;margin:0}
.map-controls #toggle-railway svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.3}
.map-controls #toggle-railway[aria-pressed="false"]{color:#84948e;opacity:.7}
.map-controls #toggle-railway[aria-pressed="true"]{color:#bce6db;border-color:#617d6b}
.gateway-swatch{display:inline-block;width:10px;height:10px;flex:none;background:#8be1d2;border:1px solid #477b79;transform:rotate(45deg);margin:2px}
.gateway-swatch.candidate{background:transparent;border:1px dashed #8be1d2}
.gateway-destination-fields{display:grid;gap:9px;margin-top:4px}
.gateway-destination-fields summary{font-size:11px;color:var(--muted);cursor:pointer;margin-bottom:8px}
.gateway-destination-fields label{margin:8px 0}

.facility-info{margin-top:14px;padding-top:13px;border-top:1px solid var(--line);font-size:11px;line-height:1.6;overflow-wrap:anywhere}
.facility-heading{margin-bottom:10px}
.facility-eyebrow{display:block;color:var(--accent);font-size:9px;letter-spacing:.04em}
.facility-heading h3{margin:3px 0 0;font-size:13px;font-weight:600;line-height:1.45}
.facility-only .facility-heading h3{display:none}
.facility-fields{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px 12px}
.facility-fields dt{color:var(--muted);font-size:10px}
.facility-fields dd{margin:0;white-space:pre-line}
.facility-flags{margin:11px 0;padding:8px 10px 8px 24px;border:1px solid #5a6248;border-radius:6px;background:#303a2c;color:#d2d9b5;font-size:10px}
.facility-flags li+li{margin-top:4px}
.facility-warning{color:#ffbc9d;font-weight:600}
.facility-notes,.facility-locations{margin-top:11px}
.facility-notes summary,.facility-locations summary{cursor:pointer;color:#c4d3c3;font-size:11px}
.facility-notes p{margin:7px 0 0;white-space:pre-line;color:#d0d9ce}
.facility-locations .facility-location{display:block;width:100%;min-height:30px;margin-top:6px;padding:5px 7px;text-align:left;font-size:10px;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
.facility-match-note{margin:10px 0;color:#e1c69f;font-size:10px;line-height:1.6}
.facility-sources{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:12px}
.facility-source-link{color:#b4d9ca;font-size:10px;text-underline-offset:3px}
.facility-source-link:hover{color:#e6eddd}
.facility-date{margin-top:7px;color:var(--muted);font-size:9px;line-height:1.6}
.facility-search-icon{display:grid;place-items:center;flex:none;width:14px;height:14px;border:1px solid #91aa85;border-radius:50%;color:#bbd1ae;font:600 10px/1 Georgia,serif}

/* The existing cube opens the news; its badge tracks unread entries per browser. */
.brand-logo-button{position:relative;display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--accent)}
.brand-logo-button:hover{background:#26383b}
.brand-logo-button .brand-mark{display:block;flex:none;object-fit:contain}
.changelog-badge{position:absolute;top:-2px;right:-3px;display:grid;place-items:center;width:16px;height:16px;border:2px solid #111e20;border-radius:50%;background:#efb177;color:#162320;font-size:11px;font-weight:800;line-height:1;pointer-events:none}
.changelog-dialog{width:min(540px,calc(100vw - 32px));max-width:none;max-height:calc(100svh - 48px);margin:auto;padding:0;border:1px solid #53665b;border-radius:12px;background:var(--panel);color:var(--text);box-shadow:0 20px 80px #0008;overflow:hidden}
.changelog-dialog[open]{display:flex;flex-direction:column}
.changelog-dialog::backdrop{background:#071012b3;backdrop-filter:blur(3px)}
.changelog-header{display:flex;flex:none;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:1px solid var(--line)}
.changelog-header h2{margin:0;font-size:18px;letter-spacing:0;font-weight:600}
#changelog-close{display:grid;place-items:center;flex:none;width:30px;height:30px;padding:0;border:0;background:transparent;color:var(--muted);font-size:24px;line-height:1}
#changelog-close:hover{color:var(--text);background:#26383b}
.changelog-body{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#63786b transparent;padding:4px 20px 20px}
.changelog-entry{padding:18px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.changelog-entry:last-child{padding-bottom:0;border-bottom:0}
.changelog-entry time{display:block;margin-bottom:6px;color:var(--muted);font:10px/1.5 ui-monospace,Consolas,monospace}
.changelog-entry h3{margin:0 0 10px;font-size:14px;font-weight:600;letter-spacing:0;color:var(--text)}
.changelog-entry ul{margin:0;padding-left:18px;font-size:12px;line-height:1.75}
.changelog-entry li{padding-left:2px;white-space:pre-wrap}
.changelog-entry li+li{margin-top:5px}
#changelog-empty{padding:20px 0 0;font-size:12px;color:var(--muted)}
@media(max-width:720px){.brand-logo-button{width:36px;height:36px}.changelog-dialog{max-height:calc(100svh - 32px)}.changelog-header{padding:14px 16px}.changelog-body{padding-right:16px;padding-left:16px}}
