*{box-sizing:border-box}body{margin:0;font-family:system-ui,Noto Sans TC,sans-serif;background:#1b1f27;color:#e6e8ec}#app{display:flex;flex-direction:column;height:100vh}header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#222733;border-bottom:1px solid #2f3542}h1{font-size:17px;margin:0}h1 small{color:#8a93a6;font-weight:400;font-size:12px;margin-left:6px}.sim{background:#c2410c;color:#fff;font-size:12px;padding:3px 8px;border-radius:10px}.hidden{display:none!important}.src{margin-left:auto;font-size:11px;color:#7c8598}main{flex:1;display:flex;min-height:0}#scene{flex:1;position:relative}#scene canvas{display:block}aside{width:300px;background:#20242e;border-left:1px solid #2f3542;display:flex;flex-direction:column;min-height:0}section{padding:10px 14px}.act{flex:1;overflow:auto;border-top:1px solid #2f3542}h2{font-size:13px;color:#9aa3b5;margin:0 0 8px;text-transform:uppercase;letter-spacing:.08em}ul{list-style:none;margin:0;padding:0}#team li{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:13px}#team img{width:28px;height:28px;border-radius:50%;object-fit:cover;border:2px solid #444}#team .r{color:#8a93a6;font-size:11px}.badge{margin-left:auto;font-size:11px;padding:2px 7px;border-radius:9px;color:#111}#feed li{font-size:12px;padding:5px 0;border-bottom:1px solid #2a2f3a;color:#c9ced8}#feed time{color:#6f788a;margin-right:6px}.bottom{position:absolute;bottom:14px;left:50%;transform:translate(-50%)}button{background:#2563eb;color:#fff;border:0;padding:9px 18px;border-radius:8px;font-size:14px;cursor:pointer}button.on{background:#b91c1c}.legend{position:absolute;left:12px;bottom:12px;background:#20242ecc;padding:8px 10px;border-radius:8px;font-size:11px;display:grid;grid-template-columns:repeat(3,auto);gap:3px 12px}.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.tip{position:absolute;pointer-events:none;background:#111827ee;padding:6px 9px;border-radius:6px;font-size:12px;white-space:nowrap}
