*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:Arial,Helvetica,sans-serif;color:#222;background:#f5f6f8}body{display:flex;flex-direction:column}header{background:#25364a;color:white;padding:15px 22px;display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}h1{font-size:21px;margin:0}h2{font-size:16px;margin:0 0 12px}.status{display:flex;align-items:center;gap:14px;font-size:13px}.pill{background:#e7eef6;color:#19334d;padding:6px 10px;border-radius:20px;font-weight:bold}main{display:flex;flex:1;min-height:0}aside{width:320px;flex-shrink:0;background:white;border-right:1px solid #d9dfe6;overflow:auto;padding:18px}section{margin:0 0 20px;padding-bottom:18px;border-bottom:1px solid #e0e4e9}.hint{font-size:13px;color:#66707c;line-height:1.55;margin:0 0 12px}ul{padding:0;list-style:none;margin:0}.empty{color:#777;font-size:13px;padding:9px 0}.model{border:1px solid #d6dce3;border-radius:5px;padding:10px;margin-bottom:8px;font-size:13px;overflow-wrap:anywhere}.model-title{font-weight:bold;margin-bottom:8px}.axis{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:8px}.axis label{font-size:11px;color:#666}.axis input{width:100%;padding:5px;margin-top:3px;border:1px solid #c5ccd4;border-radius:3px}input[type=file]{max-width:100%;margin:8px 0 10px;font-size:12px}section>label{font-size:13px}button{background:#2865a3;color:white;border:0;border-radius:4px;padding:9px 12px;font-size:13px;cursor:pointer;margin:5px 5px 5px 0}button:hover{background:#1d4b7c}button.secondary{background:#e4e8ed;color:#25364a}button.secondary:hover{background:#d2d9e2}button:disabled{opacity:.55;cursor:not-allowed}.viewport{position:relative;flex:1;min-width:0;background:#dce4ec}canvas{width:100%;height:100%;display:block;touch-action:none;outline:0}#viewMessage{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#ffffffeb;border-radius:5px;padding:12px 18px;font-size:14px;pointer-events:none}.corner{position:absolute;bottom:14px;right:16px;background:#ffffffc9;padding:8px 11px;font-size:12px;border-radius:4px;pointer-events:none}footer{background:#f1f3f5;border-top:1px solid #d6dce3;text-align:center;color:#66717b;font-size:12px;padding:7px}#uploadStatus{font-size:12px;color:#42617c;overflow-wrap:anywhere}[hidden]{display:none!important}@media(max-width:720px){main{flex-direction:column}aside{width:100%;max-height:42vh;border-right:0;border-bottom:1px solid #ddd}.viewport{min-height:35vh}header{padding:12px}h1{font-size:17px}}
