.shirt-studio .studio-viewer { height: clamp(420px, 43vw, 620px); touch-action: pan-y; }
.shirt-studio .studio-viewer-card { position: sticky; top: 100px; }
.shirt-studio .studio-viewer canvas { touch-action: pan-y; }
.shirt-loading { position: absolute; left: 18px; right: 18px; bottom: 14px; padding: 12px 16px; border-radius: 12px; text-align: center; color: #315b44; background: #fffffff0; z-index: 1; font-size: .82rem; box-shadow: 0 4px 18px #183d2310; }
.shirt-studio .studio-viewer canvas[hidden] { display: none; }
.shirt-studio label.studio-upload { box-sizing: border-box; }
.shirt-studio .studio-fallback { padding: 0; object-fit: contain; }
.shirt-loading[hidden] { display: none; }
.shirt-text-options { display: grid; grid-template-columns: 1fr auto; gap: 16px; }
.shirt-text-options input[type=color] { width: 60px; height: 44px; background: #fff; border: 1px solid #ced8d0; border-radius: 9px; padding: 4px; cursor: pointer; }
.shirt-studio input[type=file] { width: 100%; max-width: 100%; font: inherit; font-size: .8rem; color: #355f3f; }
.shirt-studio input[type=file]::file-selector-button { background: #edf4e8; color: #075139; border: 1px solid #bdcdbd; border-radius: 8px; padding: 12px; margin-right: 8px; font: inherit; cursor: pointer; }
.shirt-studio button:focus-visible, .shirt-studio input:focus-visible, .shirt-studio select:focus-visible { outline: 3px solid #247555; outline-offset: 3px; }
.shirt-studio button:disabled { opacity: .5; cursor: not-allowed; }
.shirt-studio output { float: right; color: #627363; font-weight: 400; }
.shirt-design-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.shirt-related { padding: 20px 0 35px; line-height: 1.7; }
.shirt-related a { color: #075139; text-underline-offset: 3px; }
@media (max-width: 900px) { .shirt-studio .studio-viewer-card { position: static; } }
@media (max-width: 600px) { .shirt-studio .studio-viewer { height: 420px; } .shirt-studio .studio-swatches { gap: 13px; } }
