*{box-sizing:border-box}body{margin:0;background:#a9d2d5;color:#e9f5ed;font:14px Arial,sans-serif;overflow:hidden}#scene{position:absolute;inset:0}canvas{display:block;touch-action:none}header{position:absolute;left:20px;right:20px;top:18px;display:flex;align-items:center;justify-content:space-between;gap:14px;z-index:5}.brand{font-size:22px;letter-spacing:4px;font-weight:800;color:#153b3d;text-decoration:none}.brand small{display:block;letter-spacing:2px;font-size:8px;margin-top:5px}.top{display:flex;gap:7px;align-items:center;background:#123439ec;padding:7px;border:1px solid #41625d;border-radius:13px}.top a{color:#d3e8dd;font-size:11px;padding:7px}button{border:1px solid #46655e;border-radius:7px;background:#173d40;color:#e4f4e8;padding:10px 12px;cursor:pointer;min-height:38px;font:inherit;font-size:12px}button:hover,button.active{background:#b8e4a0;color:#183f32;border-color:#cdf2b3}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #f6c878}nav{position:absolute;left:20px;top:90px;z-index:6;display:flex;gap:5px}aside{position:absolute;left:20px;top:143px;width:310px;max-height:calc(100dvh - 235px);overflow:auto;background:#0e2d32f2;backdrop-filter:blur(15px);border:1px solid #577469;border-radius:14px;padding:22px;z-index:5;box-shadow:0 15px 50px #133c3330}h1{font-size:33px;line-height:1.04;font-weight:500;letter-spacing:-1px;margin:15px 0}h2{font-size:24px;letter-spacing:-.7px;font-weight:500;margin:16px 0}h3{font-size:14px;margin-top:24px}small{font-size:8px;letter-spacing:2px;color:#b4d89e}p{line-height:1.6;font-size:12px;color:#b5d0c9}.note{font-size:10px;color:#9ab9b3}label{display:block;font-size:11px;color:#b9d8cc;margin:14px 0 8px}input,select,textarea{font:inherit;color:#e4f1e9;background:#173d40;border:1px solid #527166;border-radius:6px;padding:9px;max-width:100%;width:100%;margin-top:5px}input[type=range]{padding:0;accent-color:#b8e4a0}output{float:right}#palette{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:15px 0}#palette button{padding:9px 2px;font-size:11px}#palette i{display:block;width:18px;height:18px;margin:0 auto 7px;border-radius:2px;box-shadow:inset -5px -4px #0002}.row{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}.row button{flex:1}.close{float:right;border:0;background:transparent;min-height:25px;padding:0 5px;font-size:22px}.trait{margin:7px 0}#personInfo,#memories,#chat{font-size:12px;line-height:1.7}#chat{padding:10px;background:#1e4144;border-left:2px solid #c5e6a6;min-height:50px;white-space:pre-line}#memories{max-height:160px;overflow:auto;color:#c1d7ca}#buildingPanel{position:absolute;right:20px;top:105px;z-index:6;width:280px;padding:20px;background:#123439f2;border:1px solid #658578;border-radius:12px}#cameraBar{position:absolute;right:20px;bottom:100px;display:flex;gap:5px;z-index:4}footer{position:absolute;bottom:18px;left:20px;right:20px;background:#123439ef;border:1px solid #57746b;border-radius:12px;padding:14px 20px;display:flex;gap:28px;align-items:center;z-index:5}footer b{display:block;font-size:23px;color:#c6eda9;font-weight:500}footer span{font-size:8px;letter-spacing:1px;color:#b3c9bf}#status{margin-left:auto;max-width:240px;line-height:1.5}table{width:100%;border-collapse:collapse;font-size:10px}td,th{padding:6px 3px;border-bottom:1px solid #42665c;text-align:left}[hidden]{display:none!important}@media(max-width:760px){header{left:10px;right:10px;top:10px;align-items:flex-start}.brand{font-size:16px;letter-spacing:2px}.brand small{font-size:6px}.top{max-width:68%;flex-wrap:wrap;justify-content:flex-end;padding:4px;gap:3px}.top button{font-size:10px;padding:6px;min-height:30px}.top a{font-size:9px;padding:3px}nav{left:10px;right:10px;top:100px}nav button{flex:1;padding:8px 4px;font-size:10px}aside{left:10px;top:148px;width:min(310px,calc(100% - 20px));max-height:calc(100dvh - 300px);padding:16px}#buildingPanel{right:10px;top:148px;width:min(280px,calc(100% - 20px))}#cameraBar{left:10px;right:10px;bottom:100px;flex-wrap:wrap;justify-content:center}#cameraBar button{padding:6px 8px;font-size:10px;min-height:32px}footer{left:10px;right:10px;bottom:10px;padding:10px;gap:12px;justify-content:space-around}footer b{font-size:18px}footer span{font-size:6px}#status{display:none}}

#supplyStats,#supplyInventory,#supplyKnowledge,#supplyNotice{font-size:12px;line-height:1.8;white-space:pre-line}#supplyStats{padding:12px;border-left:3px solid #b8e4a0;background:#214348;margin:12px 0}#supplyInventory{padding:10px 0;color:#e1c990}#supplyOrders{max-height:230px;overflow:auto}#supplyLog{font-size:11px;line-height:1.7;max-height:180px;overflow:auto;color:#b8d7ce}#supplyLog div{padding:6px 0;border-bottom:1px solid #385e58}nav{flex-wrap:wrap}@media(max-width:760px){nav button{font-size:9px}nav{gap:3px}}

#professionalLive,#experimentStatus{white-space:pre-line;font-size:12px;line-height:1.8;padding:12px;background:#24474b;border-left:3px solid #b8e4a0;margin:12px 0}#experimentResults{overflow:auto}#experimentChart{width:100%;margin:14px 0}nav{max-width:calc(100% - 40px)}@media(max-width:760px){nav{top:100px;max-width:calc(100% - 20px)}nav button{font-size:8px;padding:6px 3px}}

#personGallery{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;max-height:190px;overflow:auto;margin:12px 0}.personCard{font-size:9px;padding:8px 3px;min-height:70px}.personCard .face{display:block;font-size:24px;line-height:30px}.personCard.active{box-shadow:inset 0 0 0 2px #c4e9a6}#selectedBadge{position:absolute;left:50%;bottom:155px;transform:translateX(-50%);z-index:7;display:flex;gap:8px;align-items:center;background:#102f32ee;border:1px solid #7da18c;border-radius:12px;padding:10px 14px;font-size:12px;max-width:90%}#selectedBadge button{font-size:10px;white-space:nowrap}#characterStatus,#characterPreview,#vehicleInfo,#unifiedAir,#unifiedVotes,#unifiedFinance{font-size:12px;line-height:1.8;white-space:pre-line;margin:10px 0;color:#d6ead9}#unifiedMulti canvas{width:100%;height:130px;margin:6px 0;border:1px solid #57786b;border-radius:8px}.top select{max-width:160px;color:#d9f0df;background:#234447;font-size:10px}nav{overflow-x:auto;flex-wrap:nowrap;width:max-content;max-width:calc(100% - 40px)}nav button{white-space:nowrap}#drawer{z-index:6}@media(max-width:760px){#selectedBadge{bottom:190px;width:calc(100% - 20px);font-size:10px}.top select{max-width:130px}nav{max-width:calc(100% - 20px)}}

#workspaceSwitcher{position:absolute;left:20px;right:20px;top:76px;z-index:5;display:flex;align-items:center;gap:12px;pointer-events:none;color:#183f40}#workspaceSwitcher label{font-size:10px;letter-spacing:1px;margin:0;white-space:nowrap}#workspaceSwitcher select{pointer-events:auto;max-width:330px;min-height:33px;background:#163b40;color:#e1efd9}#workspaceState{font-size:9px;letter-spacing:.5px}nav{top:124px}aside{top:176px;max-height:calc(100dvh - 270px)}#politicalModule{margin-top:15px}#selectedBadge{bottom:150px}@media(max-width:760px){#workspaceSwitcher{top:100px;left:10px;right:10px;gap:6px}#workspaceSwitcher label,#workspaceState{display:none}#workspaceSwitcher select{width:100%;max-width:100%}nav{top:143px}aside{top:187px;max-height:calc(100dvh - 330px)}#buildingPanel{top:187px}}
#openCDMX{white-space:normal;max-width:220px;background:#c9e5a5;color:#163c39;font-weight:bold}#cdmxPanel{width:min(1040px,94vw);max-height:88dvh;background:#102f35;color:#e7f3e7;border:1px solid #6b9384;border-radius:20px;padding:28px;overflow:auto;box-shadow:0 30px 100px #0008}#cdmxPanel::backdrop{background:#071d26bb;backdrop-filter:blur(5px)}.cdmxHead{display:flex;justify-content:space-between;align-items:flex-start}.cdmxHead h2{font-size:36px;margin:10px 0}.cdmxHead button{font-size:24px}.cdmxScope{padding:13px 16px;background:#25474a;border-left:3px solid #dab782;color:#d1ddce;font-size:12px;line-height:1.6}.cdmxControls{display:flex;align-items:end;gap:12px}.cdmxControls label{flex:1}#cdmxGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.cdmxCard{text-align:left;min-height:130px;padding:17px;display:flex;flex-direction:column;gap:11px;background:linear-gradient(145deg,#245052,#163b40)}.cdmxCard strong{font-size:16px;line-height:1.3}.cdmxCard span{font-size:11px;line-height:1.6;white-space:pre-line}.cdmxCard.active small{color:#31513a}#cdmxPanel a{color:#c9e5a5}@media(max-width:700px){#cdmxGrid{grid-template-columns:repeat(2,1fr)}.cdmxControls{flex-wrap:wrap}.cdmxControls label{flex-basis:100%}#cdmxPanel{padding:18px}#workspaceState{display:none}#openCDMX{max-width:140px;font-size:10px}}
#openCDMX{pointer-events:auto}
