:root{font-family:"Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;color:#183950;background:#f6f9fb;font-size:15px}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}a{color:#117d90;text-decoration:none}
.header{padding:20px clamp(20px,3vw,46px);background:#fff;border-bottom:1px solid #dce5ea;display:flex;gap:16px;justify-content:space-between;align-items:center}
.eyebrow{letter-spacing:.06em;font-size:12px;color:#11879b;font-weight:750}.header h1{font-size:clamp(22px,2.2vw,32px);margin:5px 0 7px;color:#153653}.header p{color:#577183;margin:0;max-width:850px;line-height:1.55}
.return{white-space:nowrap;font-weight:650;border:1px solid #bed4dc;border-radius:9px;padding:9px 13px;background:#f5fcfd}
.workbench{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;padding:18px 24px;max-width:1650px;margin:auto;align-items:start}
.viewport,.controls .panel{background:#fff;border:1px solid #dae4e9;border-radius:12px;box-shadow:0 2px 10px rgba(33,70,92,.045)}
.viewport{overflow:hidden;padding:14px}.canvas-head{display:flex;justify-content:space-between;gap:12px;margin:2px 4px 12px;align-items:center}.canvas-head span{font-size:12px;color:#718b99}
#gl-canvas{display:block;width:100%;aspect-ratio:16/10;min-height:340px;background:#f9fbfd;border-radius:8px;border:1px solid #dfebf0;touch-action:none;outline:none;cursor:grab}
#gl-canvas:active{cursor:grabbing}#gl-canvas:focus-visible{outline:3px solid #13a4b9}.canvas-note{font-size:13px;color:#42677b;margin:10px 4px 0;line-height:1.6}
.message{font-size:13px;color:#1d7755;background:#ecf8f1;padding:10px 13px;margin-top:12px;border-radius:8px;line-height:1.5}.message.warn{color:#9a431f;background:#fff3e9}
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.stat-grid>div{border:1px solid #e5edf0;border-radius:8px;padding:10px 12px;min-width:0}.stat-grid span{display:block;font-size:12px;color:#668293;margin-bottom:4px}.stat-grid strong{font-size:12px;word-wrap:break-word;font-weight:600;line-height:1.5}
.controls{display:flex;flex-direction:column;gap:11px;max-height:calc(100vh - 130px);overflow:auto;position:sticky;top:12px;padding-right:3px}.panel{padding:15px 17px}.panel h2{font-size:16px;color:#153653;margin:1px 0 14px}
.block-label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#4c6778;margin-bottom:11px;font-weight:550}
input[type=file],input[type=number],select{background:#fff;border:1px solid #becfd8;border-radius:7px;color:#163a50;padding:8px;max-width:100%;width:100%;outline-color:#148da0}
input[type=file]{font-size:12px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.field{font-size:12px;color:#4f7082;display:flex;flex-direction:column;gap:4px}.field input{padding:7px}
.small{color:#718998;font-size:12px;line-height:1.6;margin:10px 0 0}.preset-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-bottom:12px}
.preset-row button{padding:7px 2px;font-size:12px;background:#edf7f9;border:1px solid #c7e1e6;border-radius:6px;color:#18637b}.preset-row button:hover{background:#d9f0f4}
.check{display:flex;gap:7px;align-items:center;color:#416378;font-size:13px;margin-top:12px}.check input{accent-color:#11879b}
kbd{font-family:monospace;background:#f1f5f7;border:1px solid #dce5e9;padding:1px 3px;border-radius:3px}.action-panel{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.action-panel button{padding:10px 5px;border-radius:8px;font-weight:650;border:1px solid #bfd0d9}.primary{background:#147f91;color:#fff}.primary:hover{background:#0d6b7c}.secondary{background:#f1f8fa;color:#195568}.help-link{grid-column:1/3;text-align:center;font-size:12px;margin-top:5px}
[hidden]{display:none!important}
.home{max-width:1100px;margin:28px auto;padding:0 20px 40px}.home h1{font-size:32px;color:#153653}.home>p{color:#577183;line-height:1.7}.task-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin:23px 0}.task-card{display:block;border:1px solid #d9e5e9;background:#fff;border-radius:12px;padding:22px;box-shadow:0 2px 8px rgba(0,0,0,.025)}.task-card:hover{border-color:#11879b}.task-card small{color:#11879b;font-weight:800}.task-card h2{font-size:20px;color:#153653;margin:7px 0}.task-card p{color:#597083;line-height:1.6;margin-bottom:0}.home-note{background:#fff;border:1px solid #d9e5e9;padding:18px 22px;border-radius:10px;line-height:1.7}.home-note h2{font-size:18px;margin:0 0 8px}
@media(max-width:1120px){.workbench{grid-template-columns:1fr;padding:12px}.controls{position:static;max-height:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.viewport{padding:10px}.header{align-items:flex-start}}
@media(max-width:650px){.controls{display:flex}.header{display:block}.return{display:inline-block;margin-top:10px}.stat-grid{grid-template-columns:1fr}.canvas-head{display:block}.canvas-head span{display:block;margin-top:5px}}
