:root{color-scheme:dark;font-family:Arial,sans-serif;background:#10161f;color:#f3f6fa}*{box-sizing:border-box}html,body{margin:0;min-height:100%}.viewer-page,.map-stage{width:100vw;height:100vh;height:100dvh;overflow:hidden;background:#000}.viewer-page{cursor:none}.map-stage{display:flex;align-items:center;justify-content:center;position:relative}.map-image,.preview-image{display:none;position:static;width:auto;height:auto;object-fit:contain;transform-origin:center center;user-select:none;pointer-events:none;will-change:transform}.map-image{max-width:100%;max-height:100%}.editor-page{padding:1rem;background:#10161f;color:#f3f6fa}.editor-card{width:min(1100px,100%);margin:auto}.narrow-card{width:min(480px,100%);padding-top:8vh}.editor-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.editor-header h1{margin:0}.editor-header p,.help-text{color:#b9c4d0}.header-actions,.control-row,.button-row{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}.header-actions form{margin:0}.panel{margin:1rem 0;padding:1rem;border:1px solid #344358;border-radius:.65rem;background:#182231}.panel h2{margin-top:0}label{display:block;margin:.4rem 0;font-weight:700}input[type=password],input[type=file],select{width:100%;padding:.75rem;background:#0d141e;color:#fff;border:1px solid #52647a;border-radius:.45rem}input[type=password]{margin-bottom:1rem}input[type=range]{flex:1 1 320px}button,.button-link{min-height:2.7rem;padding:.65rem 1rem;border:1px solid #60728a;border-radius:.45rem;background:#243247;color:#fff;text-decoration:none;cursor:pointer}.primary-button{background:#dfe8f4;color:#10161f;font-weight:700}.danger-button{background:#542b30}.preview-stage{display:flex;align-items:center;justify-content:center;position:relative;width:100%;height:min(60vh,620px);overflow:hidden;border:1px solid #344358;border-radius:.45rem;background:#000}.preview-image{max-width:100%;max-height:100%}.message{margin:.75rem 0;padding:.75rem;border:1px solid #60728a;border-radius:.45rem;background:#182231}.message.error{background:#542b30}.message.success{background:#244b37}a{color:#fff}@media(max-width:700px){.editor-header{flex-direction:column}}