*{box-sizing:border-box}html,body{margin:0;height:100%;font:14px/1.45 system-ui,"Segoe UI",sans-serif;color:#263a30;background:#ecefe9}
[hidden]{display:none!important}button,select,input{font:inherit}button{border:1px solid #577565;background:#315e46;color:white;border-radius:5px;padding:8px 12px;cursor:pointer}
button:disabled{opacity:.55;cursor:wait}
.player-gate{position:fixed;inset:0;background:#e9ece7;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;gap:15px}
.player-login{background:#fff;border:1px solid #d2d8ce;border-radius:12px;padding:30px;width:min(430px,100%);display:grid;gap:13px;box-shadow:0 12px 30px #233a2e15}
.player-login h1{font:30px Georgia,serif;margin:0;color:#294d36}.player-login p{margin:0;color:#5d6a61}
.player-login label{display:grid;gap:5px}.player-login input{width:100%;padding:9px;border:1px solid #a2afa7;border-radius:5px}
#player-status{max-width:430px;padding:10px 15px;background:#fff;border-radius:8px;margin:0}
#player-status.error,#player-view-status.error{color:#a52c2c}
#player-app{height:100%;display:flex;flex-direction:column}
.player-header{background:#2c4936;color:#fff;display:flex;align-items:center;gap:18px;min-height:67px;padding:9px 18px;flex-wrap:wrap}
.brand{display:grid;line-height:1.25}.brand strong{font:22px Georgia,serif}.brand small{color:#bfd1c4}
main{flex:1;min-height:0;display:flex}#player-map{flex:1;min-width:0;background:#e9ece7}
.player-sidebar{width:285px;background:#f7f7f3;border-left:1px solid #c5d2c6;overflow-y:auto;padding:18px}
.player-sidebar h2{font:22px Georgia,serif;margin:0 0 10px}.player-sidebar h3{font:18px Georgia,serif;margin:21px 0 8px}
#player-view-status{color:#56705e}#player-summary{font-size:13px}.note{font-size:12px;color:#708077;margin-top:26px}
.biome-item{border-top:1px solid #d6ded6;padding:8px 0}.biome-item h4{margin:0 0 5px;font-size:14px}.biome-item p{font-size:12px;margin:0;color:#647567}
.biome-item img{width:100%;max-height:140px;object-fit:cover;border-radius:4px;margin:8px 0}
@media(max-width:800px){main{flex-direction:column}.player-sidebar{width:100%;max-height:190px;border-left:0;border-top:1px solid #c5d2c6}.player-header{padding:7px 10px;gap:10px}.brand strong{font-size:18px}#player-sign-out{margin-left:auto}}


/* Read-only viewer controls mirror the master map's display categories. */
.player-filter{display:grid;gap:5px;color:#405849;font-size:12px;margin:10px 0}
.player-filter input,.player-filter select{width:100%;padding:8px;border:1px solid #bec9c0;
  border-radius:5px;background:#fff;color:#213629;font:13px system-ui}
.player-filter[hidden]{display:none}
.player-layer-options{display:grid;grid-template-columns:1fr 1fr;gap:8px 5px;margin:6px 0 15px}
.player-layer-options label{display:flex;align-items:center;gap:5px;cursor:pointer;font-size:13px}
.player-layer-options input{accent-color:#315f45}
.player-search-results{display:grid;gap:4px;margin:10px 0}
.player-search-results .minor{font-size:12px;color:#6b776d}
.player-search-hit{display:block;width:100%;background:#fff;border:1px solid #ced9ce;color:#315f45;
  text-align:left;padding:7px 9px;border-radius:5px;cursor:pointer;font-size:13px}
.player-search-hit:hover,.player-search-hit:focus-visible{background:#e8f3e9}

/* The exact timeline appearance is shared with the master in map-timeline.css. */
#player-sign-out{margin-left:auto}
@media(max-width:800px){
  /* The player's filter sidebar moves below the map on narrow screens.
     Keep the historical controls above it rather than covering filters. */
  #player-app #timeline-controls{bottom:200px}
}
@media(max-height:620px) and (max-width:800px){
  #player-app #timeline-controls{bottom:8px;max-height:calc(100dvh - 20px);overflow-y:auto}
}

/* Same information-card structure and typography as the master map.
   Shared base rules are in map-card.css; these only handle the viewer overlay. */
.player-detail-modal{
  position:fixed;inset:0;z-index:3000;display:flex;align-items:center;
  justify-content:center;background:rgba(0,0,0,.45);padding:14px;
}
.player-detail-modal[hidden],#player-detail-image[hidden],
#player-detail-extra[hidden],#player-detail-coordinates[hidden]{display:none!important}
.player-detail-window{
  width:520px;max-width:100%;max-height:calc(100dvh - 28px);
  overflow-y:auto;overscroll-behavior:contain;min-width:0;color:#283a30;
}
.player-detail-window h2{margin-top:0;overflow-wrap:anywhere}
.player-detail-window .modal-close{color:#333;cursor:pointer;font-weight:400;padding:0}
.player-detail-window .location-card-type{margin-bottom:20px}
.player-detail-window .location-card-description{margin-bottom:20px}
.player-detail-window .location-card-extra{margin-bottom:12px;white-space:pre-wrap}
.player-detail-window .location-card-coordinates{flex-wrap:wrap;overflow-wrap:anywhere}
.player-detail-window .location-card-image img{max-height:min(300px,37dvh);margin:0 auto}
.player-detail-footnote{font-size:12px;color:#768077;margin:8px 0 0}
.player-detail-window .location-card-extra[hidden]{display:none!important}
@media(max-width:600px){.player-detail-window{width:100%;max-height:calc(100dvh - 16px)}}
