:root {
    --bg-workspace: #ffffff;
    --bg-ui: #f9fafb;
    --text-main: #111827;
    --text-muted: #6b7280;
    --accent: #2563eb;
    --border: #e5e7eb;
    --panel-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1);
}

body { 
    margin: 0; font-family: 'Inter', sans-serif; 
    background: var(--bg-workspace); color: var(--text-main);
    height: 100vh; overflow: hidden; display: flex; flex-direction: column;
}

/* --- High-Precision Toolbar --- */
#toolbar-shelf {
    height: 56px; background: var(--bg-ui);
    border-bottom: 1px solid var(--border);
    display: flex; align-items: center; padding: 0 20px; gap: 12px;
    z-index: 1000;
}

.shelf-cluster { display: flex; align-items: center; gap: 4px; padding: 0 12px; border-right: 1px solid var(--border); height: 32px; }
.shelf-cluster:last-child { border-right: none; }

.icon-btn {
    height: 32px; padding: 0 10px; border-radius: 6px; border: 1px solid transparent;
    background: transparent; color: var(--text-main); cursor: pointer;
    display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500;
    transition: all 0.15s ease;
}
.icon-btn:hover { background: #fff; border-color: var(--border); box-shadow: var(--panel-shadow); }
.icon-btn.active { background: #eff6ff; color: var(--accent); border-color: #bfdbfe; }
.icon-btn i { font-size: 14px; color: var(--text-muted); }
.icon-btn.active i { color: var(--accent); }

/* --- Workspace --- */
#main-container { display: flex; flex-grow: 1; overflow: hidden; }

#sidebar { width: 240px; border-right: 1px solid var(--border); background: var(--bg-ui); display: flex; flex-direction: column; }
#canvas-area { flex-grow: 1; position: relative; overflow: hidden; background: white; }
#property-pane { width: 280px; border-left: 1px solid var(--border); background: var(--bg-ui); display: none; padding: 20px; }

/* --- UI Components --- */
.sidebar-label { font-size: 11px; font-weight: 700; color: var(--text-muted); padding: 16px 20px 8px; text-transform: uppercase; letter-spacing: 0.05em; }
.tree-node { padding: 8px 20px; font-size: 13px; color: var(--text-main); cursor: pointer; display: flex; align-items: center; gap: 8px; }
.tree-node:hover { background: #f3f4f6; }

.input-group { margin-bottom: 16px; }
.input-group label { display: block; font-size: 11px; font-weight: 600; color: var(--text-muted); margin-bottom: 6px; }
input { 
    width: 100%; border: 1px solid var(--border); border-radius: 4px; padding: 8px 10px; 
    font-size: 13px; font-family: inherit; transition: border-color 0.2s; box-sizing: border-box;
}
input:focus { outline: none; border-color: var(--accent); ring: 2px solid #dbeafe; }

/* --- Grid Background --- */
#grid-canvas { position: absolute; inset: 0; background-image: 
    linear-gradient(var(--border) 0.5px, transparent 0.5px), 
    linear-gradient(90deg, var(--border) 0.5px, transparent 0.5px);
    background-size: 20px 20px; opacity: 0.4;
}