/* Generated art is displayed in its native 4:3 frame, without cropping. */
.environment-image { display:block; width:100%; height:auto; object-fit:contain; }
.park-art { height:auto; aspect-ratio:4/3; background:#0b1821; }
.park-art .environment-image { height:100%; }
.park-caption { position:static; border:0; border-bottom:1px solid #365967; border-radius:0; padding:20px 24px; }
.park-showcase { max-width:1200px; width:100%; margin-inline:auto; }
.park-roadmap { grid-template-columns:repeat(4,minmax(0,1fr)); }
.park-roadmap button:hover { border-color:#86c5d1; }
.field.evolving-field { height:auto; aspect-ratio:4/3; min-width:880px; }
.ballpark-scenery .environment-image { width:100%; height:100%; object-fit:contain; }
.evolving-field .player-card,.evolving-field .player-card:hover,.evolving-field .player-card.selected,.evolving-field .player-card.drop-target { width:90px; height:132px; transform:translate(-50%,-50%); margin:0; }
.evolving-field .player-card .card-avatar { top:29px; width:60px; height:65px; }
.evolving-field .player-card .card-name { font-size:12px; bottom:26px; left:4px; right:4px; }
.evolving-field .player-card .card-rating,.evolving-field .player-card .card-position { top:5px; font-size:13px; }
.evolving-field .player-card .card-stamina { bottom:6px; height:15px; }
.evolving-field .pos-CF { left:50%; top:32%; }
.evolving-field .pos-LF { left:22%; top:32%; }
.evolving-field .pos-RF { left:78%; top:32%; right:auto; }
.evolving-field .pos-SS { left:36%; top:45%; }
.evolving-field .pos-2B { left:64%; top:45%; }
.evolving-field .pos-3B { left:24%; top:58%; }
.evolving-field .pos-1B { left:76%; top:58%; }
.evolving-field .pos-P { left:50%; top:58%; }
.evolving-field .pos-C { left:50%; top:81%; bottom:auto; }
.evolving-field .scoreboard { top:12px; transform:translateX(-50%); }
.photo-locker-room { min-height:0!important; height:auto; aspect-ratio:4/3; perspective:none; background:#0a151f!important; overflow:hidden; }
.photo-locker-room .locker-room-photo { display:block; width:100%; height:100%; object-fit:contain; }
.photo-locker-room::before,.photo-locker-room::after,.photo-locker-room > :not(.locker-room-photo):not(.room-sign) { display:none!important; }
.photo-locker-room .room-sign { top:14px; width:auto; max-width:75%; padding:10px 20px; background:#071723d9; }
#locker-evolution { display:block; margin-bottom:12px; }
.locker-evolution > .environment-image { border-radius:8px; }
.locker-page-layout { align-items:start; }
.locker-roster-strip { padding:20px; margin-top:18px; border:1px solid #365564; border-radius:12px; background:#0b2331; }
.locker-roster-strip h2 { margin:0 0 14px; font-size:18px; }
.locker-member-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:10px; }
.locker-member { color:#e6f4ff; border:1px solid #45667b; border-radius:7px; background:#102c40; padding:9px; cursor:pointer; }
.locker-member img { width:58px; height:62px; object-fit:contain; display:block; margin:0 auto 6px; background:#e8f0f5; border-radius:3px; }
.locker-member b,.locker-member span { display:block; }
.locker-member span { margin-top:4px; font-size:10px; color:#9cc2d5; }
.locker-member:hover { border-color:#daca97; }
.sponsor-intro,.sponsor-contract,.sponsor-real-benefits { padding:22px; background:#0c2534; border:1px solid #315766; border-radius:12px; margin-bottom:16px; }
.sponsor-intro p,.sponsor-real-benefits p { color:#adc6ce; line-height:1.8; }
.sponsor-offers { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; margin:16px 0; }
.sponsor-offers article { padding:20px; border:1px solid #315766; border-radius:12px; background:#0b202e; }
.sponsor-offers article p { font-size:12px; color:#a8c7d2; line-height:1.8; }
.sponsor-offers small { color:#d5bd79; }
.sponsor-estimate { display:flex; gap:16px; align-items:center; flex-wrap:wrap; margin:15px 0; }
.sponsor-estimate input { background:#061823; color:#fff; border:1px solid #4a7283; border-radius:4px; padding:8px; width:150px; }
.sponsor-status { padding:7px 10px; background:#3b3020; color:#ead7a8; border-radius:6px; display:inline-block; font-size:12px; }
.asset-fallback { object-fit:contain; }
.campus-scroll { overflow-x:auto; }
.campus-scene { position:relative; min-width:760px; aspect-ratio:4/3; isolation:isolate; }
.campus-scene > img { width:100%; height:100%; object-fit:contain; }
.campus-structures { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; filter:drop-shadow(2px 5px 3px #0007); }
.campus-scene > .campus-ground { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.campus-pin { position:absolute; transform:translate(-50%,-100%); display:flex; align-items:center; gap:5px; padding:5px 7px; border:1px solid #a9cbd7; border-radius:7px; background:#082330ed; color:#f1f7fa; cursor:pointer; min-height:38px; box-shadow:0 3px 8px #0007; }
.campus-pin:hover,.campus-pin:active { transform:translate(-50%,-100%); background:#18465b; }
.campus-pin[aria-pressed="true"] { outline:3px solid #ffdc7b; outline-offset:2px; }
.campus-pin b { color:#ffdc7b; font-size:13px; }
.campus-pin span { font-size:11px; white-space:nowrap; }
.campus-pin small { display:block; font-size:10px; color:#9ce5d8; }
.campus-pin.under-construction { border:2px dashed #ffd570; }
.campus-pin.under-construction { background:#493611f2; box-shadow:0 0 0 3px #ffd57055,0 3px 8px #0007; }
.campus-pin.under-construction small { color:#ffe6a0; font-weight:700; }
.campus-dialog { width:min(640px,calc(100vw - 32px)); max-height:85dvh; padding:44px 0 0; border:1px solid #5b9caf; border-radius:16px; background:#091d2a; color:#e6f4ff; overflow:auto; box-shadow:0 20px 80px #000a; }
.campus-dialog::backdrop { background:#00101999; }
.campus-dialog-close { position:absolute; top:10px; right:12px; width:32px; height:32px; border:1px solid #5b9caf; border-radius:50%; background:#12364a; color:white; cursor:pointer; }
.campus-dialog .campus-detail { border:0; }
.campus-dialog .upgrade-button { width:auto; margin:0; padding:8px 14px; min-height:0; font-size:12px; }
.campus-dialog .campus-detail { display:block; padding:0 20px 20px; }
.facility-summary h3 { margin:0 0 6px; }
.facility-summary p { margin:0 0 10px; }
.facility-price-row { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:14px; font-size:12px; color:#aecbd6; }
.facility-price-row strong { color:#ffdc7b; font-size:16px; }
.facility-status { border:1px solid #806b37; border-radius:5px; padding:5px 8px; background:#3b3019; color:#ffdf8c; font-size:11px; }
.facility-comparison { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.facility-comparison figure { margin:0; min-width:0; overflow:hidden; border:1px solid #365967; border-radius:8px; background:#102b39; }
.facility-comparison figure > img,.facility-comparison figure > svg { display:block; width:100%; aspect-ratio:4/3; object-fit:contain; }
.facility-level-preview { display:flex; gap:5px; margin-top:12px; flex-wrap:wrap; }
.facility-level-preview button { padding:6px 10px; background:#102d3c; border:1px solid #456775; border-radius:5px; color:#bfdce5; font-size:11px; cursor:pointer; }
.facility-level-preview button[aria-pressed="true"] { border-color:#ffdc7b; color:#ffdc7b; }
.facility-comparison figcaption { padding:8px 10px; font-size:12px; }
.facility-comparison figcaption b,.facility-comparison figcaption span { display:block; }
.facility-comparison figcaption span { color:#b9d0da; margin-top:3px; }
.comparison-note { display:block; margin-top:6px; font-size:10px; }
.campus-legend { position:absolute; left:12px; bottom:12px; border-radius:5px; padding:7px 10px; background:#071b2be6; color:#fff; font-size:11px; }
.campus-toolbar { display:flex; gap:16px; justify-content:space-between; flex-wrap:wrap; padding:14px 20px; color:#bbd5df; font-size:12px; background:#0d2735; }
.campus-toolbar input { accent-color:#38b4cc; }
.scenery-only .campus-pin,.scenery-only .campus-legend { display:none; }
.campus-detail { padding:20px; display:flex; gap:20px; justify-content:space-between; align-items:center; background:#091d2a; border-top:1px solid #365967; }
.campus-detail h3 { font-size:20px; margin:8px 0; }
.campus-detail p { font-size:12px; color:#afcbd6; line-height:1.6; }
.campus-detail small,.campus-detail .campus-work { color:#ffdc7b; }
.campus-detail button { flex-shrink:0; }
.campus-detail { flex-wrap:wrap; }
.parking-operations { flex:1 0 100%; border-top:1px solid #365967; padding-top:18px; }
.parking-controls { display:flex; align-items:center; flex-wrap:wrap; gap:18px; color:#dcebf2; font-size:13px; }
.parking-controls select { background:#12364a; color:#fff; padding:8px; border:1px solid #658fa4; border-radius:5px; }
.parking-controls input { accent-color:#3bc6cb; }
.parking-controls button { width:auto; }
.parking-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin:16px 0; }
.parking-metrics span { padding:13px; border:1px solid #34576b; border-radius:7px; color:#b8d3df; font-size:12px; }
.parking-metrics b { display:block; margin-top:6px; font-size:18px; color:#ffdc7b; }
@media(max-width:700px) { .campus-detail { flex-direction:column; align-items:stretch; } }
@media(max-width:700px) { .park-roadmap { grid-template-columns:repeat(2,1fr); } .sponsor-offers { grid-template-columns:1fr; } }
