:root{font:14px/1.5 system-ui,sans-serif;color:#263c33;background:#f1f3ec}*{box-sizing:border-box}body{margin:0}header{padding:16px 24px;border-bottom:1px solid #d4dbce}h1{margin:4px 0;font-size:23px}p{margin:4px 0 12px}a{color:#375e42}main{display:grid;grid-template-columns:260px minmax(0,1fr);height:calc(100dvh - 130px);min-height:520px}.controls{padding:18px;overflow-y:auto;background:#fafbf7}label{display:block;margin-bottom:12px;font-weight:600}select,button{font:inherit;color:inherit;border:1px solid #bac6b3;background:#fff;border-radius:6px;padding:9px}select{display:block;width:100%;margin-top:4px}button{cursor:pointer}button:hover,button[aria-pressed=true]{background:#e0eacf}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #ca8d35;outline-offset:2px}button:disabled{opacity:.5;cursor:wait}.views{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:14px 0}#floorJump{width:100%;margin-bottom:12px}#floorEvidence,.limits{font-size:12px;margin-top:12px}#floorViewport{position:relative;overflow:hidden;min-width:0;background:#e8eee3}canvas{display:block;width:100%;height:100%;touch-action:none}#floorStatus{position:absolute;top:12px;left:12px;right:12px;z-index:2;background:#fffdf3ee;padding:8px 12px;border-radius:6px;pointer-events:none}#floorStatus[hidden],#floorPad[hidden]{display:none}#floorLabels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.floorLabel{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;font-size:12px;line-height:20px;background:#fffdf2ee;border:1px solid #bbc6b4;border-radius:4px;padding:0 5px;color:#233b2b}.floorLabel.selected{background:#f0d489;border-color:#ac8030;font-weight:700}#floorHelp{position:absolute;bottom:12px;left:12px;right:12px;pointer-events:none;text-align:center;padding:5px;background:#fffdf2dd;border-radius:6px}#floorPad{position:absolute;bottom:56px;right:15px;display:grid;grid-template-columns:repeat(3,42px);gap:5px}#floorPad button{touch-action:none;background:#fffef2e8;font-size:20px;padding:8px}#floorPad button:first-child{grid-column:2}#floorPad button:nth-child(2){grid-column:1}@media(max-width:700px){header{padding:10px 14px}h1{font-size:19px}main{height:auto;min-height:0;display:flex;flex-direction:column}#floorViewport{order:-1;height:56dvh;min-height:310px}.controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px}.controls label{margin:0}.views,#floorEvidence,.limits{grid-column:1 / -1}}
