.constructor-grid { display: grid; grid-template-columns: minmax(250px, 300px) minmax(0, 1fr); gap: 16px; }
.constructor-controls { display: flex; flex-direction: column; gap: 17px; padding: 22px; background: var(--p-surface); border: 1px solid var(--p-border); }
.constructor-field { display: grid; gap: 7px; }
.constructor-field label { color: var(--p-navy); font-size: 12px; font-weight: 600; }
.constructor-field label small { display: block; color: var(--p-muted); font-size: 10px; font-weight: 400; }
.constructor-field > small { color: var(--p-muted); font-size: 10px; line-height: 1.45; }
.constructor-field select, .constructor-field input[type="text"], .constructor-field input[type="file"] { width: 100%; min-height: 38px; padding: 7px 9px; background: var(--p-canvas); border: 1px solid var(--p-border); border-radius: 4px; color: var(--p-text); font-size: 12px; }
.constructor-field input[type="file"] { padding: 6px; }
.constructor-colors { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.constructor-colors .constructor-field { grid-template-columns: 1fr auto; align-items: center; }
.constructor-colors input { width: 32px; height: 32px; padding: 0; border: 0; background: transparent; }
.constructor-clear { align-self: start; padding: 0; border: 0; background: transparent; color: var(--p-forest); font-size: 11px; text-decoration: underline; text-underline-offset: 3px; }
.constructor-clear:hover { color: var(--p-navy); }
.constructor-status { min-height: 32px; margin: 0; padding: 9px 10px; background: var(--p-canvas); border-left: 2px solid var(--p-forest); color: var(--p-body); font-size: 11px; line-height: 1.5; }
.constructor-status[data-error="true"] { border-left-color: #7a2e2e; color: #7a2e2e; }
.constructor-open { display: inline-flex; justify-content: center; padding: 10px 12px; background: var(--p-navy); color: var(--p-canvas); font-size: 12px; font-weight: 600; text-decoration: none; }
.constructor-open:hover { background: #061a35; }
.constructor-stage { min-width: 0; }
.constructor-stage-head { display: flex; justify-content: space-between; gap: 15px; margin-bottom: 9px; color: var(--p-muted); font-size: 10px; letter-spacing: .04em; }
.constructor-stage .tenant-header { padding: 24px; }
.constructor-stage .plugin-mount { padding: 24px; }
.constructor-stage .tenant-metrics { gap: 10px; }
.constructor-stage .t-metric { padding: 14px; }
@media (max-width: 850px) { .constructor-grid { grid-template-columns: 1fr; } }
