*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;color:#e6edf3;background:#0d1117;height:100dvh;font-family:system-ui,sans-serif;font-size:16px;overflow:hidden}#app,#layout{height:100dvh}#layout{display:flex}#map-container{flex:1;position:relative;overflow:hidden}#map-container svg{touch-action:none;width:100%;height:100%;display:block}#sidebar{background:#161b22;border-left:1px solid #30363d;flex-direction:column;flex-shrink:0;gap:8px;width:320px;padding:12px;display:flex;overflow-y:auto}#menu{flex-direction:column;gap:8px;max-width:360px;margin:10vh auto;display:flex}hr{border:none;border-top:1px solid #30363d}button{color:#fff;cursor:pointer;background:#238636;border:0;border-radius:4px;min-height:44px;padding:6px 10px;font-size:16px}button.secondary{background:#30363d}button:disabled{color:#8b949e;cursor:default;background:#30363d}.unit-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.unit-label{flex-basis:100%}.stepper{align-items:center;gap:6px;display:flex}.stepper button{width:44px}.stepper output{text-align:center;min-width:56px}.message{color:#f0b429}.hint{color:#8b949e;font-size:14px}@media (width<=720px){#layout{flex-direction:column}#sidebar{width:100%;max-height:45dvh;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #30363d;border-left:0}#menu{max-width:none;margin:4vh 16px}}.header{align-items:center;gap:8px;display:flex}.header h2{font-size:18px}.header .status{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}button.compact{min-height:32px;padding:2px 10px;font-size:14px}.modal-backdrop{z-index:10;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:#161b22;border:1px solid #30363d;border-radius:8px;flex-direction:column;gap:10px;width:100%;max-width:360px;max-height:90dvh;padding:14px;display:flex;overflow-y:auto}.modal-actions{gap:8px;display:flex}.modal-actions button{flex:1}#update-banner{z-index:1000;background:#161b22;border:1px solid #30363d;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;display:flex;position:fixed;bottom:12px;left:50%;transform:translate(-50%)}
