:root{font-family:Inter,system-ui,-apple-system,'Yu Gothic',Meiryo,sans-serif;color:#e5edf8;background:#0c1422;font-size:14px}*{box-sizing:border-box}body{margin:0;min-height:100vh;overflow:hidden}button,input,select{font:inherit}button{background:#22354f;border:1px solid #3b506a;border-radius:8px;color:#eaf2fc;padding:9px 12px;cursor:pointer;white-space:nowrap}button:hover{background:#314a6a}button:disabled{opacity:.48;cursor:not-allowed}button.active,button.primary{background:#245eb0;border-color:#6c99da;color:white}input,select{background:#101f33;border:1px solid #425670;border-radius:7px;color:#edf6ff;padding:9px 10px;max-width:100%}input:focus,select:focus{outline:2px solid #3e86d3;outline-offset:1px}label{display:block;font-size:12px;color:#b3c5da}h2,h3,p{margin-top:0}.is-hidden{display:none!important}
.topbar{height:69px;display:flex;align-items:center;gap:18px;padding:10px 17px;border-bottom:1px solid #2c3b52;background:#111e30;position:relative;z-index:3}.brand{display:flex;gap:10px;align-items:center;min-width:246px}.brand>div{display:flex;flex-direction:column;gap:2px}.brand strong{font-size:15px;letter-spacing:.1px}.brand small{color:#90a9c5;font-size:10px}.logo{display:grid;place-items:center;background:linear-gradient(125deg,#59a3ed,#2862b1);width:38px;height:38px;border-radius:11px;font-size:23px;font-weight:800;color:white}.project-tools,.user-tools,.tool-group{display:flex;align-items:center;gap:8px}.project-tools{flex:1;min-width:0}.project-tools select{min-width:155px;max-width:370px;width:37%;background:#192a40}.save-status{font-size:12px;color:#a7e8c7;white-space:nowrap}.user-tools{margin-left:auto}.user-tools button{font-size:12px}.user-tools>span{font-size:11px;color:#99daba;white-space:nowrap}.main-layout{height:calc(100vh - 69px);display:grid;grid-template-columns:278px minmax(250px,1fr) 278px}.palette,.properties{background:#162337;overflow:auto;padding:18px 14px}.palette{border-right:1px solid #324258}.properties{border-left:1px solid #324258}.panel-title{font-weight:750;margin-bottom:11px;color:#e1edff;display:flex;align-items:center;gap:7px}.chip{font-size:10px;font-weight:500;border-radius:100px;background:#294768;color:#bbdcfc;padding:2px 8px}.hint,.muted{color:#91a7c0;font-size:12px;line-height:1.65}.field-label{margin:13px 0}.field-label input{width:100%;margin-top:7px}.catalog{display:flex;flex-direction:column;gap:8px}.catalog-category{border:1px solid #334862;border-radius:10px;overflow:hidden}.category-title{display:flex;justify-content:space-between;width:100%;background:#1d3048;border:0;border-radius:0;font-size:13px;text-align:left;font-weight:650}.category-title span{color:#9db1c8;font-size:11px}.category-items{display:flex;flex-direction:column;padding:5px;gap:4px}.asset-button{display:flex;align-items:center;text-align:left;gap:10px;width:100%;background:transparent;border:1px solid transparent;white-space:normal}.asset-button:hover{background:#203953}.asset-button.active{background:#1d4877;border-color:#4a91de}.asset-dot{width:27px;height:27px;flex-shrink:0;border:1px solid #ffffff66;border-radius:7px}.asset-content{display:flex;flex-direction:column;gap:2px}.asset-content strong{font-weight:600;font-size:12px}.asset-content small{font-size:10px;color:#a0b5cb}.palette-bottom{margin-top:24px;border-top:1px solid #32445c;padding-top:14px;font-size:12px;line-height:1.6;color:#a7bdd5}.palette-bottom p{color:#8196ae}.workspace{position:relative;display:flex;flex-direction:column;min-width:0;background:#c6d5e4}.stage-toolbar{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:9px 12px;background:#e9f0f7;border-bottom:1px solid #c6d4e3;overflow-x:auto}.stage-toolbar button,.stage-toolbar select{font-size:11px;padding:8px 9px;background:#ffffff;border-color:#b6c8d9;color:#1b334d}.stage-toolbar button:hover{background:#d8e7f5}.stage-toolbar button.active{color:#fff;background:#2869af;border-color:#2869af}.stage-toolbar select{width:120px}.stage{position:relative;flex:1;min-height:0;overflow:hidden}.three-canvas{display:block;width:100%;height:100%;cursor:grab}.stage-note,.coordinates{position:absolute;z-index:1;font-size:11px;line-height:1.5;background:#133251e7;color:#fff;border-radius:8px;padding:8px 11px;pointer-events:none}.stage-note{top:14px;left:14px;max-width:350px}.coordinates{bottom:14px;left:14px}.stage-footer{display:flex;align-items:center;justify-content:space-between;padding:9px 13px;font-size:11px;background:#e8f0f8;color:#31506f;border-top:1px solid #cbd7e5}.loading-screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;background:#d5e2ef;color:#1d3550;z-index:2}.loader{border:3px solid #b4c7d8;border-top-color:#2869af;border-radius:50%;width:22px;height:22px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.properties .row{display:flex;gap:7px;margin:9px 0;align-items:center}.properties .row label{width:70px;flex-shrink:0}.properties .row input{width:100%;min-width:0}.properties .row button{flex:1}.properties .wide{width:100%;margin:6px 0}.empty-selection{padding:20px 10px;text-align:center;color:#9eb3c9;line-height:1.7}.empty-selection span{font-size:37px}.separator{height:1px;background:#32435a;margin:20px 0}.small-tools{display:grid;grid-template-columns:1fr 1fr;gap:6px}.small-tools button{font-size:11px;white-space:normal;line-height:1.25}.inventory-stats{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#d1e1f2}.inventory-stats>div{display:flex;justify-content:space-between;padding-bottom:6px;border-bottom:1px solid #314258}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);padding:12px 18px;background:#112b44;color:white;border:1px solid #406080;border-radius:9px;z-index:11;box-shadow:0 10px 30px #10213844;opacity:0;pointer-events:none;transition:opacity .22s;max-width:85vw}.toast.visible{opacity:1}.modal-layer{position:fixed;inset:0;background:#081322bb;z-index:8;display:grid;place-items:center;padding:18px}.modal{background:#16283c;border:1px solid #54708f;box-shadow:0 15px 55px #0007;border-radius:14px;width:min(840px,95vw);max-height:88vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid #37506a}.modal-header h2{font-size:18px;margin:0}.modal-body{overflow:auto;padding:18px;min-height:150px}.tabs{display:flex;gap:8px;margin-bottom:14px}.tabs button.active{background:#2872b9}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid label{display:flex;flex-direction:column;gap:6px}.form-grid .span2{grid-column:span 2}.admin-table{width:100%;border-collapse:collapse;font-size:12px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid #344a64;padding:10px 7px}.admin-table th{color:#9fb6d0}.admin-table td:last-child{text-align:right}.admin-table button{font-size:11px;padding:6px 8px}.modal-actionbar{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap}.auth-modal{max-width:410px;padding:23px}.auth-modal form{display:grid;gap:12px}.auth-modal label input{display:block;margin-top:6px;width:100%}.auth-modal h2{font-size:19px}.auth-modal p{font-size:12px;color:#a9bfd7;line-height:1.6}
@media(max-width:1250px){.main-layout{grid-template-columns:230px minmax(200px,1fr) 245px}.topbar{gap:10px}.brand{min-width:205px}.brand strong{font-size:13px}}
@media(max-width:950px){body{overflow:auto}.main-layout{display:flex;flex-wrap:wrap;height:auto}.palette{order:1;width:45%;height:360px}.properties{order:2;width:55%;height:360px}.workspace{order:3;height:58vh;width:100%}.brand{min-width:auto}.brand small{display:none}.user-tools>span{display:none}.topbar{flex-wrap:wrap;height:auto}.project-tools{flex:1}.project-tools select{width:180px}}
@media(max-width:550px){.main-layout{display:flex;flex-direction:column}.workspace{order:1;height:55vh}.palette,.properties{order:2;width:100%;height:auto;max-height:300px}.properties{order:3}.brand{width:100%}.project-tools{width:100%}.project-tools select{flex:1}.save-status{display:none}.user-tools{position:absolute;right:15px;top:12px}.stage-toolbar{justify-content:flex-start}.form-grid{grid-template-columns:1fr}.form-grid .span2{grid-column:span 1}}
