
*{box-sizing:border-box}body{margin:0;background:#f4f2eb;color:#263c34;font:14px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif}button,select,input{font:inherit}button,select{color:inherit;border:1px solid #d9ded5;background:#fbfaf6;border-radius:5px;min-height:38px;padding:8px 12px;cursor:pointer}button:hover{background:#e6ebe3}button.active,button.primary{background:#365c4a;color:white;border-color:#365c4a}button:focus-visible,select:focus-visible{outline:3px solid #bc7c32;outline-offset:2px}header{padding:23px 30px 16px}.eyebrow{font-size:10px;letter-spacing:1.8px;text-transform:uppercase;color:#68796e}h1{font-size:34px;line-height:1.15;margin:6px 0 8px;letter-spacing:-1px}header p{margin:0;color:#718076}.shell{margin:0 24px 20px;border:1px solid #c9d0c5;background:#faf9f4}.bar{display:flex;align-items:center;justify-content:space-between;padding:12px 17px;border-bottom:1px solid #d9ded5;gap:10px}.bar strong{font:20px Georgia,serif}.tag{font-size:11px;background:#eeecd8;padding:4px 9px;border-radius:3px}.workspace{display:grid;grid-template-columns:248px minmax(0,1fr);height:min(720px,76vh);min-height:480px}aside{padding:18px;border-right:1px solid #d9ded5;overflow-y:auto}h2{font:23px Georgia,serif;margin:18px 0 6px}.roomlist{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0 18px}.roomlist button{font-size:11px;text-align:left;padding:7px 8px;min-height:40px}.row{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.row button{flex:1;font-size:12px}.meta{font-size:12px;color:#6a796f}.separator{border-top:1px solid #d9ded5;margin-top:18px;padding-top:14px}.layer{display:flex;gap:9px;align-items:center;margin:10px 0;font-size:13px}.layer input{accent-color:#365c4a;width:16px;height:16px}.viewport{position:relative;overflow:hidden;background:#e7e8e2;touch-action:none;min-width:0}canvas{display:block;width:100%;height:100%;outline:none}.toolbar{position:absolute;top:14px;left:14px;display:flex;gap:5px;z-index:3}.toolbar button{font-size:12px;box-shadow:0 2px 7px #00000008}.zoom{position:absolute;right:14px;bottom:50px;display:grid;gap:6px;z-index:3}.zoom button{width:38px;padding:4px;font-size:19px}.hint{position:absolute;left:16px;bottom:12px;color:#617065;font-size:11px;pointer-events:none}.legend{position:absolute;left:16px;bottom:35px;font-size:11px;background:#faf9f4dd;padding:5px 9px;border-radius:3px;pointer-events:none}.dot{display:inline-block;border-radius:50%;width:7px;height:7px;margin-right:4px}.blue{background:#2279c4}.orange{background:#c38c24}.labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.room-label{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;background:#faf9f4ed;padding:3px 6px;border:1px solid #dedfd5;border-radius:3px;color:#364b3e;font-size:10px;pointer-events:auto;cursor:pointer}.room-label.selected{background:#365c4a;color:white}.status{padding:9px 17px;border-top:1px solid #d9ded5;color:#718076;font-size:11px;display:flex;justify-content:space-between;gap:8px}.notice{font-size:11px;line-height:1.6;color:#657469}.point-details{background:#e9eee5;padding:10px;border-radius:4px;font-size:12px;margin-top:12px}.point-details:empty{display:none}details{margin-top:12px;font-size:12px}summary{cursor:pointer}dialog{max-width:820px;width:94%;border:1px solid #c9d0c5;background:#faf9f4;border-radius:6px;color:#263c34;max-height:90vh}dialog::backdrop{background:#1b2f2bcc}dialog img{width:100%;display:block;margin:12px 0}.error{position:absolute;inset:70px 20px auto;background:#fff4da;padding:20px;z-index:5}.hide{display:none}.footnav{display:flex;gap:6px;margin-top:10px}.footnav button{flex:1;font-size:12px}#pointSelect{width:100%;font-size:12px;margin-top:5px}a{color:#365c4a}
@media(max-width:760px){header{padding:16px}h1{font-size:27px}.shell{margin:0 8px 12px}.workspace{grid-template-columns:1fr;height:auto;min-height:0}.viewport{grid-row:1;height:58vh;min-height:360px}aside{border-right:0;border-top:1px solid #d9ded5;overflow:visible;padding:14px}.roomlist{grid-template-columns:repeat(3,1fr)}.bar{padding:10px}.bar strong{font-size:17px}.tag{font-size:9px}.status{flex-wrap:wrap}.room-label{font-size:9px}.hint{max-width:75%}.layers{display:grid;grid-template-columns:1fr 1fr}.layer{font-size:12px}.toolbar button{padding:7px 10px}button{min-height:42px}}
