:root{--wpf-bg: #f7f4ef;--wpf-panel: #ffffff;--wpf-border: #e8e2d8;--wpf-text: #333333;--wpf-accent: #ca9b52;--wpf-accent-light: #f0e6d3;--wpf-group-bg: #faf8f5;--wpf-group-border: #e8e2d8}#app-container{display:flex;flex-direction:column;height:calc(100vh - 180px)}.menu-bar{display:flex;background:var(--wpf-bg);border-bottom:1px solid var(--wpf-border);padding:2px 8px;gap:4px;flex-shrink:0}.menu-item{padding:4px 10px;font-size:13px;cursor:pointer;border-radius:3px;position:relative}.menu-item:hover{background:#e0e0e0}.ribbon-bar{display:flex;align-items:center;justify-content:center;background:var(--wpf-panel);border:1px solid var(--wpf-group-border);border-radius:8px;margin:0 16px 12px;padding:8px 12px;gap:8px;flex-shrink:0;box-shadow:0 1px 3px #0000000f}.workspace-btn{display:flex;flex-direction:column;align-items:center;padding:6px 14px;border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer;font-family:inherit;gap:2px;position:relative}.workspace-btn:hover{background:var(--wpf-group-bg)}.workspace-btn .icon{font-size:18px;color:#444}.workspace-btn .label{font-size:10px;color:#444}.workspace-btn.active{background:#ca9b5226}.workspace-btn.active:after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:3px;background:var(--wpf-accent);border-radius:2px 2px 0 0}.workspace{display:flex;flex:1;overflow:hidden;padding:12px 16px 16px;gap:12px}.canvas-area{flex:3;display:flex;flex-direction:column;min-width:0}.canvas-wrapper{flex:1;border:1px solid var(--wpf-border);border-radius:8px;background:var(--wpf-panel);overflow:auto;padding:12px}.canvas-content{min-height:400px;display:flex;align-items:center;justify-content:center}.grid-placeholder{display:grid;grid-template-columns:repeat(30,20px);grid-template-rows:repeat(30,28px);gap:0;border:1px solid #bdbdbd}.grid-cell{width:20px;height:28px;border:.5px solid #bdbdbd;background:#fff}.grid-cell.filled{background:#2b2b2b}.sidebar{flex:2;max-width:420px;min-width:300px;background:var(--wpf-panel);border:1px solid var(--wpf-border);border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.workspace-panel{display:none;flex:1;overflow-y:auto;padding:12px}.workspace-panel.active{display:block}.group-box{border:1px solid var(--wpf-group-border);border-radius:4px;margin-bottom:12px;background:var(--wpf-group-bg)}.group-header{padding:6px 10px;font-weight:600;font-size:13px;border-bottom:1px solid var(--wpf-group-border);background:#f0f0f0;border-radius:4px 4px 0 0}.group-body{padding:10px}.form-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.form-row label{min-width:80px;font-size:13px}.form-row input[type=text],.form-row input[type=number]{flex:1;padding:5px 8px;border:1px solid #bbb;border-radius:3px;font-size:13px;font-family:inherit}.form-row input:focus{outline:none;border-color:var(--wpf-accent)}.btn{padding:6px 14px;border:1px solid #bbb;border-radius:3px;background:#f0f0f0;cursor:pointer;font-size:13px;font-family:inherit}.btn:hover{background:#e0e0e0}.btn-primary{background:var(--wpf-accent);color:#fff;border-color:#a88340}.btn-primary:hover{background:#a88340}.btn-sm{padding:4px 10px;font-size:12px}.toggle-group{display:flex;flex-wrap:wrap;gap:4px}.toggle-btn{padding:6px 12px;border:1px solid #bbb;border-radius:3px;background:#f0f0f0;cursor:pointer;font-size:12px;font-family:inherit;min-width:70px}.toggle-btn:hover{background:#e0e0e0}.toggle-btn.active{background:var(--wpf-accent);color:#fff;border-color:#a88340;font-weight:600}.toggle-btn:disabled{opacity:.5;cursor:not-allowed}.slider-row{display:flex;align-items:center;gap:8px}.slider-row input[type=range]{flex:1}.object-list{list-style:none;max-height:200px;overflow-y:auto}.object-list li{display:flex;align-items:center;gap:6px;padding:3px 4px;font-size:12px}.object-list li:hover{background:#f0f0f0}.info-text{font-size:11px;color:#666;margin-top:6px}.hint-text{font-size:11px;color:#888;margin-top:4px}select{padding:5px 8px;border:1px solid #bbb;border-radius:3px;font-size:13px;font-family:inherit;min-width:140px}.checkbox-row{display:flex;align-items:center;gap:6px;margin:6px 0;font-size:13px}.color-option{display:flex;align-items:center;gap:6px}.color-swatch{width:16px;height:16px;border:1px solid #aaa;border-radius:2px}hr{border:none;border-top:1px solid var(--wpf-border);margin:8px 0}
