.ws-layout { display:grid; grid-template-columns:minmax(320px,1fr) minmax(360px,1.2fr); gap:24px; align-items:start; }
.ws-layout .admin-card { margin-top:12px; }
.ws-editor .admin-grid { margin:18px 0; }
.ws-editor textarea { width:100%; min-height:100px; padding:12px; font:inherit; border:1px solid var(--line); border-radius:8px; resize:vertical; }
.ws-editor .ws-text { grid-column:1/-1; }
.ws-editor label { display:flex; flex-direction:column; gap:8px; margin-bottom:14px; }
.ws-editor label.check { flex-direction:row; align-items:center; }
.ws-editor input[type=checkbox] { width:18px;height:18px; }
.ws-stage { min-height:250px; display:grid; place-items:center; background:#EEE7EF; border-radius:14px; margin:18px 0; }
.ws-stage img { width:100%; height:330px; object-fit:contain; }
.ws-actions { display:grid; gap:10px; margin-top:18px; }
.ws-actions .primary-button { margin:0; }
.ws-actions button, #ws-recalculate, #ws-card-tools button, #ws-project-panel button { padding:12px; border:1px solid var(--line); border-radius:8px; }
.ws-preview { position:sticky; top:18px; min-width:0; }
#ws-status { background:#EEE7EF; padding:12px; border-radius:8px; }
#ws-status.error { color:#922A25; background:#FBE8E3; }
#ws-project-panel { overflow-wrap:anywhere; }
#ws-project-panel input, #ws-project-panel select { min-width:0; max-width:100%; }
@media(max-width:820px) { .ws-layout { grid-template-columns:1fr; } .ws-preview { position:static; } .ws-stage img { height:260px; } }
.ws-color-field { grid-column:1/-1; border:0; padding:0; min-width:0; }
.ws-swatches { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.ws-swatches label { display:flex; flex-direction:row; align-items:center; gap:8px; padding:10px; border:1px solid var(--line); border-radius:10px; cursor:pointer; font-size:12px; }
.ws-swatches label:has(input:checked) { border:2px solid var(--accent); background:#eee7ef; }
.ws-swatches input { position:absolute; opacity:0; width:1px; height:1px; }
.ws-swatches label:has(input:focus-visible) { outline:2px solid var(--accent); outline-offset:2px; }
.ws-color-dot { width:20px; height:20px; flex-shrink:0; border:1px solid #ded3df; border-radius:50%; }
.ws-color-select { display:flex; align-items:center; gap:10px; width:100%; }
.ws-color-select select { flex:1; min-width:0; }
#ws-border-hint button { margin-top:6px; padding:7px 10px; }
