.properties-panel { display: flex; flex-direction: column; gap: var(--spacing-sm, 8px); padding: var(--spacing-sm, 8px); font-family: var(--font-family, sans-serif); font-size: var(--font-size-md, 14px); color: var(--text, #333); } /* ── Empty state ─────────────────────────────────────────────── */ .properties-panel-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; min-height: 200px; padding: var(--spacing-lg, 24px); text-align: center; } .properties-panel-empty-icon { font-size: 48px; margin-bottom: var(--spacing-md, 16px); opacity: 0.5; } .properties-panel-empty-text { color: var(--text-secondary, #888); font-size: var(--font-size-sm, 12px); line-height: 1.5; max-width: 220px; } /* ── Header ──────────────────────────────────────────────────── */ .properties-panel-header { display: flex; align-items: center; justify-content: space-between; padding: var(--spacing-xs, 4px) var(--spacing-sm, 8px); background-color: var(--surface-hover, rgba(0, 0, 0, 0.04)); border-radius: var(--border-radius, 4px); margin-bottom: var(--spacing-xs, 4px); } .properties-panel-type-badge { font-weight: var(--font-weight-bold, 700); font-size: var(--font-size-sm, 12px); text-transform: uppercase; letter-spacing: 0.5px; color: var(--primary, #2563eb); } .properties-panel-id { font-size: var(--font-size-xs, 10px); color: var(--text-secondary, #888); font-family: monospace; } /* ── Fieldsets ───────────────────────────────────────────────── */ .properties-panel-fieldset { border: 1px solid var(--border, #e0e0e0); border-radius: var(--border-radius, 4px); padding: var(--spacing-sm, 8px); margin: 0; } .properties-panel-fieldset legend { font-weight: var(--font-weight-medium, 500); font-size: var(--font-size-sm, 12px); color: var(--text-secondary, #666); padding: 0 var(--spacing-xs, 4px); } /* ── Rows ────────────────────────────────────────────────────── */ .properties-panel-row { display: flex; gap: var(--spacing-sm, 8px); } .properties-panel-row > * { flex: 1; } /* ── Labels ──────────────────────────────────────────────────── */ .properties-panel-label { display: flex; flex-direction: column; gap: 2px; margin-bottom: var(--spacing-xs, 4px); font-size: var(--font-size-sm, 12px); color: var(--text-secondary, #666); } /* ── Inputs ──────────────────────────────────────────────────── */ .properties-panel-input, .properties-panel-text-input, .properties-panel-select { width: 100%; padding: 4px 6px; border: 1px solid var(--border, #ccc); border-radius: var(--border-radius, 4px); background-color: var(--background, #fff); color: var(--text, #333); font-size: var(--font-size-md, 14px); font-family: var(--font-family, sans-serif); transition: border-color 0.15s ease, box-shadow 0.15s ease; box-sizing: border-box; } .properties-panel-input:focus, .properties-panel-text-input:focus, .properties-panel-select:focus { outline: none; border-color: var(--primary, #2563eb); box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15); } .properties-panel-input[type="number"] { -moz-appearance: textfield; } .properties-panel-input[type="number"]::-webkit-inner-spin-button, .properties-panel-input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; } /* ── Color inputs ────────────────────────────────────────────── */ .properties-panel-color-input { width: 100%; height: 28px; padding: 2px; border: 1px solid var(--border, #ccc); border-radius: var(--border-radius, 4px); background-color: var(--background, #fff); cursor: pointer; box-sizing: border-box; } .properties-panel-color-input::-webkit-color-swatch-wrapper { padding: 0; } .properties-panel-color-input::-webkit-color-swatch { border: none; border-radius: 2px; } .properties-panel-text-input { margin-top: 2px; font-size: var(--font-size-xs, 11px); font-family: monospace; } /* ── Select ──────────────────────────────────────────────────── */ .properties-panel-select { cursor: pointer; appearance: auto; } /* ── Responsive ──────────────────────────────────────────────── */ @media (max-width: 768px) { .properties-panel { padding: var(--spacing-xs, 4px); } .properties-panel-row { flex-direction: column; } }