/* WEN SPORT v121 — color space, movable chest logos and back text */
.tracksuit-designer-page{display:grid;gap:14px}.tracksuit-designer-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;border:1px solid #dbe4f1;border-radius:18px;background:linear-gradient(135deg,#0d1e3b 0%,#16396f 64%,#1f66ff 100%);color:#fff;box-shadow:0 14px 36px rgba(15,43,86,.16)}.tracksuit-designer-hero .eyebrow{color:#9fc1ff}.tracksuit-designer-hero h2{margin:5px 0 4px;font-size:24px}.tracksuit-designer-hero p{max-width:720px;margin:0;color:#d8e5ff;font-size:12px}.tracksuit-hero-actions{display:flex;gap:8px;flex-wrap:wrap}.tracksuit-designer-hero .btn.secondary{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.12);color:#fff}.tracksuit-designer-hero .btn.primary{background:#fff;color:#11316a}.tracksuit-designer-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.72fr);gap:14px;align-items:start}.tracksuit-viewer-panel,.tracksuit-controls-panel{border:1px solid #dbe4f1;border-radius:18px;background:#fff;box-shadow:0 12px 30px rgba(15,35,68,.07)}.tracksuit-viewer-panel{overflow:hidden}.tracksuit-viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-bottom:1px solid #e5ebf4;background:#fbfcfe}.tracksuit-selected-chip{display:flex;align-items:center;gap:9px}.tracksuit-selected-chip>span{width:34px;height:34px;border:4px solid #fff;border-radius:10px;background:var(--part-color);box-shadow:0 0 0 1px #d8e1ef}.tracksuit-selected-chip small,.tracksuit-selected-chip strong{display:block}.tracksuit-selected-chip small{color:#7a879a;font-size:7px;font-weight:900;letter-spacing:.1em}.tracksuit-selected-chip strong{margin-top:2px;color:#12213a;font-size:11px}.tracksuit-viewer-options{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.tracksuit-quality{display:flex;align-items:center;gap:6px;color:#5d6a7f;font-size:9px;font-weight:850}.tracksuit-quality select{height:32px;min-width:92px;padding:0 26px 0 10px;border:1px solid #dbe4f1;border-radius:10px;background:#fff;color:#172642;font-size:10px;font-weight:900;outline:0;cursor:pointer}.tracksuit-quality select:focus{border-color:#1764ff;box-shadow:0 0 0 3px rgba(23,100,255,.1)}.tracksuit-toggle{display:flex;align-items:center;gap:8px;color:#5d6a7f;font-size:9px;font-weight:800;cursor:pointer}.tracksuit-toggle input{position:absolute;opacity:0;pointer-events:none}.tracksuit-toggle span{position:relative;width:38px;height:22px;border-radius:99px;background:#d7e0ed;transition:.2s}.tracksuit-toggle span:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(15,35,68,.2);transition:.2s}.tracksuit-toggle input:checked+span{background:#1764ff}.tracksuit-toggle input:checked+span:after{transform:translateX(16px)}.tracksuit-canvas-wrap{position:relative;min-height:620px;background:radial-gradient(circle at 50% 42%,#fff 0,#eef3fa 58%,#dfe7f2 100%);touch-action:none}.tracksuit-canvas-wrap canvas{display:block;width:100%;height:100%;min-height:620px;outline:0}.tracksuit-canvas-wrap canvas.is-pickable{cursor:pointer}.tracksuit-loading{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;background:linear-gradient(145deg,#f8fbff,#eaf0f8);color:#172642;text-align:center;transition:opacity .28s,visibility .28s}.tracksuit-loading.is-done{opacity:0;visibility:hidden;pointer-events:none}.tracksuit-loading strong{font-size:13px}.tracksuit-loading small{max-width:280px;color:#748197;font-size:9px;line-height:1.5}.tracksuit-spinner{width:42px;height:42px;border:4px solid #dce6f4;border-top-color:#1764ff;border-radius:50%;animation:tracksuit-spin .9s linear infinite}.tracksuit-load-ready,.tracksuit-load-error{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;font-size:18px;font-weight:950}.tracksuit-load-ready{background:#e9f2ff;color:#1764ff;box-shadow:0 0 0 8px rgba(23,100,255,.08)}.tracksuit-load-error{background:#fff0ee;color:#d92d20;font-size:20px}.tracksuit-loading .btn{margin-top:5px}@keyframes tracksuit-spin{to{transform:rotate(360deg)}}.tracksuit-hint{position:absolute;left:50%;bottom:14px;display:flex;gap:6px;transform:translateX(-50%);white-space:nowrap}.tracksuit-hint span{padding:7px 9px;border:1px solid rgba(171,185,205,.5);border-radius:999px;background:rgba(255,255,255,.82);backdrop-filter:blur(8px);color:#526078;font-size:8px;font-weight:800;box-shadow:0 5px 14px rgba(28,49,82,.07)}.tracksuit-view-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:10px;border-top:1px solid #e5ebf4;background:#fbfcfe}.tracksuit-view-controls button{height:38px;border:1px solid #dbe4f1;border-radius:10px;background:#fff;color:#30415d;font-size:9px;font-weight:850;cursor:pointer}.tracksuit-view-controls button:hover{border-color:#1764ff;color:#1764ff;background:#f1f6ff}.tracksuit-controls-panel{display:grid;gap:0;overflow:hidden}.tracksuit-control-section,.tracksuit-color-summary{padding:15px;border-bottom:1px solid #e5ebf4}.tracksuit-color-summary{border-bottom:0}.tracksuit-section-head>div{display:flex;align-items:center;gap:9px}.tracksuit-section-head>div>span{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:9px;background:#eaf1ff;color:#1764ff;font-size:10px;font-weight:900}.tracksuit-section-head strong,.tracksuit-section-head small{display:block}.tracksuit-section-head strong{color:#172642;font-size:11px}.tracksuit-section-head small{margin-top:2px;color:#7b8799;font-size:8px}.tracksuit-parts{display:grid;gap:6px;margin-top:12px}.tracksuit-part{display:grid;grid-template-columns:30px 1fr 16px;align-items:center;gap:9px;width:100%;padding:9px;border:1px solid #e1e8f2;border-radius:11px;background:#fff;color:#21304a;text-align:left;cursor:pointer;transition:.18s}.tracksuit-part:hover,.tracksuit-part.active{border-color:#1764ff;background:#f3f7ff;box-shadow:0 0 0 2px rgba(23,100,255,.08)}.tracksuit-part-color{width:28px;height:28px;border:3px solid #fff;border-radius:8px;background:var(--part-color);box-shadow:0 0 0 1px #d8e1ef}.tracksuit-part strong,.tracksuit-part small{display:block}.tracksuit-part strong{font-size:10px}.tracksuit-part small{margin-top:2px;color:#7b8799;font-size:7px}.tracksuit-part i{color:#9aa7ba;font-style:normal;font-size:16px}.tracksuit-palette{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px}.tracksuit-swatch{position:relative;aspect-ratio:1;border:3px solid #fff;border-radius:11px;background:var(--swatch);box-shadow:0 0 0 1px #d8e1ef,0 3px 8px rgba(15,35,68,.08);cursor:pointer}.tracksuit-swatch:hover,.tracksuit-swatch:focus-visible{box-shadow:0 0 0 2px #1764ff,0 4px 10px rgba(15,35,68,.12);transform:translateY(-1px)}.tracksuit-custom-color{display:grid;grid-template-columns:1fr 42px auto;align-items:center;gap:9px;margin-top:12px;padding:9px 10px;border:1px solid #e1e8f2;border-radius:11px;color:#526078;font-size:9px;font-weight:800}.tracksuit-custom-color input{width:42px;height:30px;padding:0;border:0;border-radius:8px;background:transparent;cursor:pointer}.tracksuit-custom-color output{color:#172642;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px}.tracksuit-color-summary>#tracksuitSummary{display:grid;gap:6px;margin-top:12px}.tracksuit-color-summary>#tracksuitSummary>div{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:8px;padding:7px 0;border-bottom:1px dashed #e4eaf3}.tracksuit-color-summary>#tracksuitSummary span{width:18px;height:18px;border:2px solid #fff;border-radius:6px;background:var(--part-color);box-shadow:0 0 0 1px #d8e1ef}.tracksuit-color-summary>#tracksuitSummary b{font-size:9px}.tracksuit-color-summary>#tracksuitSummary code{color:#66748a;font-size:8px}.tracksuit-summary-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.tracksuit-summary-actions .btn{min-height:38px;padding:7px;font-size:8px}
html[data-visual-theme="alternative"] .tracksuit-viewer-panel,html[data-visual-theme="alternative"] .tracksuit-controls-panel{border-color:#cad8ee;background:#fff}html[data-visual-theme="alternative"] .tracksuit-designer-hero{background:linear-gradient(135deg,#10264c,#155eef)}
.tracksuit-part-group-title{grid-column:1/-1;margin:6px 2px 0;padding-top:8px;border-top:1px solid #e8edf5;color:#6b7890;font-size:8px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.tracksuit-part-group-title:first-child{margin-top:0;padding-top:0;border-top:0}.tracksuit-color-summary>#tracksuitSummary{max-height:370px;padding-right:4px;overflow:auto;scrollbar-width:thin}@media(min-width:1250px){.tracksuit-parts{grid-template-columns:1fr 1fr}}
@media(max-width:1120px){.tracksuit-designer-grid{grid-template-columns:minmax(0,1.35fr) 300px}.tracksuit-canvas-wrap,.tracksuit-canvas-wrap canvas{min-height:560px}}
@media(max-width:900px){.tracksuit-designer-hero{align-items:flex-start;flex-direction:column}.tracksuit-designer-grid{grid-template-columns:1fr}.tracksuit-canvas-wrap,.tracksuit-canvas-wrap canvas{min-height:520px}.tracksuit-controls-panel{grid-template-columns:1fr 1fr}.tracksuit-color-summary{grid-column:1/-1}.tracksuit-control-section{border-right:1px solid #e5ebf4}}
@media(max-width:600px){.tracksuit-designer-page{gap:10px}.tracksuit-designer-hero{padding:16px;border-radius:14px}.tracksuit-designer-hero h2{font-size:20px}.tracksuit-hero-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.tracksuit-hero-actions .btn{width:100%}.tracksuit-viewer-panel,.tracksuit-controls-panel{border-radius:14px}.tracksuit-canvas-wrap,.tracksuit-canvas-wrap canvas{min-height:430px}.tracksuit-hint{left:8px;right:8px;bottom:8px;justify-content:center;transform:none;white-space:normal}.tracksuit-hint span{padding:6px;font-size:7px}.tracksuit-controls-panel{grid-template-columns:1fr}.tracksuit-control-section{border-right:0}.tracksuit-color-summary{grid-column:auto}.tracksuit-parts{grid-template-columns:1fr 1fr}.tracksuit-part{grid-template-columns:26px 1fr;padding:8px}.tracksuit-part>i{display:none}.tracksuit-part-color{width:24px;height:24px}.tracksuit-part small{display:none}.tracksuit-palette{grid-template-columns:repeat(5,1fr)}.tracksuit-summary-actions{grid-template-columns:1fr}.tracksuit-viewer-toolbar{align-items:stretch;flex-direction:column}.tracksuit-viewer-options{justify-content:space-between}.tracksuit-quality{justify-content:space-between}.tracksuit-quality select{min-width:120px}.tracksuit-toggle{min-height:34px}.tracksuit-view-controls button{min-height:44px}}
@media(max-width:360px){.tracksuit-canvas-wrap,.tracksuit-canvas-wrap canvas{min-height:380px}.tracksuit-parts{grid-template-columns:1fr}.tracksuit-view-controls{grid-template-columns:1fr 1fr}.tracksuit-palette{gap:6px}.tracksuit-designer-hero p{font-size:11px}}

/* v106 usability: keep the long part list contained on desktop without trapping mobile scrolling. */
@media(min-width:901px){.tracksuit-controls-panel{align-self:start;max-height:calc(100vh - 105px);overflow:auto;scrollbar-width:thin}}

/* v107: open colors where the user selects a garment part. */
.tracksuit-quick-palette{position:fixed;z-index:2500;width:min(310px,calc(100vw - 20px));padding:14px;border:1px solid #cedaeb;border-radius:16px;background:rgba(255,255,255,.98);box-shadow:0 18px 48px rgba(12,31,62,.24);backdrop-filter:blur(14px);animation:tracksuit-quick-in .16s ease-out}.tracksuit-quick-palette[hidden]{display:none!important}@keyframes tracksuit-quick-in{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}.tracksuit-quick-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.tracksuit-quick-head small,.tracksuit-quick-head strong{display:block}.tracksuit-quick-head small{color:#778399;font-size:8px;font-weight:900;letter-spacing:.09em}.tracksuit-quick-head strong{margin-top:2px;color:#14233d;font-size:13px}.tracksuit-quick-head button{display:grid;place-items:center;width:34px;height:34px;border:1px solid #dce4ef;border-radius:10px;background:#f5f8fc;color:#273750;font-size:20px;line-height:1;cursor:pointer}.tracksuit-quick-swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.tracksuit-quick-swatches .tracksuit-swatch{min-height:44px}.tracksuit-swatch.is-selected:after{content:'✓';position:absolute;right:4px;bottom:3px;display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#fff;color:#155eef;font-size:11px;font-weight:950;box-shadow:0 1px 4px rgba(15,35,68,.22)}.tracksuit-quick-custom{display:grid;grid-template-columns:1fr 44px auto;align-items:center;gap:8px;margin-top:10px;padding:9px 10px;border:1px solid #dfe7f2;border-radius:11px;color:#526078;font-size:9px;font-weight:850}.tracksuit-quick-custom input{width:44px;height:32px;padding:0;border:0;background:transparent;cursor:pointer}.tracksuit-quick-custom output{color:#172642;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px}
@media(max-width:600px){.tracksuit-quick-palette.is-mobile{left:10px!important;right:10px;top:auto!important;bottom:calc(76px + env(safe-area-inset-bottom,0px));width:auto;border-radius:18px}.tracksuit-quick-swatches .tracksuit-swatch{min-height:48px}.tracksuit-quick-head button{width:40px;height:40px}}

/* v117: expanded color space and local logo/text decorations for the 3D tracksuit. */
.tracksuit-color-space{display:grid;gap:9px;margin-top:12px;padding:11px;border:1px solid #e1e8f2;border-radius:13px;background:linear-gradient(135deg,#fbfdff,#f4f7fb)}.tracksuit-color-space-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.tracksuit-color-space-title strong,.tracksuit-color-space-title small{display:block}.tracksuit-color-space-title strong{color:#172642;font-size:10px}.tracksuit-color-space-title small{color:#78859a;font-size:8px;text-align:right}.tracksuit-color-space label{display:grid;grid-template-columns:68px 1fr 38px;align-items:center;gap:8px;color:#526078;font-size:8px;font-weight:900}.tracksuit-color-space input{accent-color:#1764ff}.tracksuit-color-space label:nth-of-type(1) input{accent-color:#ef4444}.tracksuit-color-space label:nth-of-type(2) input{accent-color:#22c55e}.tracksuit-color-space label:nth-of-type(3) input{accent-color:#2563eb}.tracksuit-color-space output{color:#172642;text-align:right;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px}.tracksuit-mark-section{background:#fbfdff}.tracksuit-logo-grid{display:grid;gap:10px;margin-top:12px}.tracksuit-logo-slot{display:grid;grid-template-columns:72px 1fr;gap:10px;padding:10px;border:1px solid #e1e8f2;border-radius:13px;background:#fff}.tracksuit-logo-preview{display:grid;place-items:center;width:72px;height:72px;border:1px dashed #cbd6e5;border-radius:13px;background:#f6f9fd;overflow:hidden}.tracksuit-logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.tracksuit-logo-preview span{padding:0 8px;color:#8390a3;text-align:center;font-size:8px;font-weight:850}.tracksuit-logo-fields{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-content:start}.tracksuit-logo-fields strong,.tracksuit-logo-fields small{grid-column:1/-1;display:block}.tracksuit-logo-fields strong{color:#172642;font-size:10px}.tracksuit-logo-fields small{margin-top:-3px;color:#7b8799;font-size:8px}.tracksuit-logo-upload{position:relative;overflow:hidden;text-align:center}.tracksuit-logo-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}.tracksuit-logo-clear:disabled{opacity:.45;cursor:not-allowed}.tracksuit-logo-size{grid-column:1/-1;display:grid;grid-template-columns:52px 1fr 38px;align-items:center;gap:8px;color:#5d6a7f;font-size:8px;font-weight:900}.tracksuit-logo-size input{accent-color:#1764ff}.tracksuit-logo-size output{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;text-align:right}.tracksuit-back-text-box{display:grid;gap:9px;margin-top:12px;padding:10px;border:1px solid #e1e8f2;border-radius:13px;background:#fff}.tracksuit-back-text-box label{display:grid;gap:5px;color:#526078;font-size:8px;font-weight:900}.tracksuit-back-text-box input[type="text"]{width:100%;height:36px;padding:0 10px;border:1px solid #dbe4f1;border-radius:10px;color:#172642;font-size:11px;font-weight:900;text-transform:uppercase}.tracksuit-back-text-box input[type="color"]{width:48px;height:34px;padding:0;border:0;background:transparent}.tracksuit-back-text-box input[type="range"]{accent-color:#1764ff}.tracksuit-back-text-box output{color:#172642;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px}.tracksuit-mark-note{margin:10px 0 0;color:#78859a;font-size:8px;line-height:1.45}.tracksuit-palette{grid-template-columns:repeat(5,1fr)}.tracksuit-palette .tracksuit-swatch{min-height:32px}
.tracksuit-mark-position{grid-column:1/-1;display:grid;gap:7px;padding:9px;border:1px solid #e3eaf4;border-radius:11px;background:#f7faff}.tracksuit-mark-position-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.tracksuit-mark-position-head strong{color:#24344f;font-size:8px}.tracksuit-mark-position-head button{padding:3px 7px;border:1px solid #d6e0ee;border-radius:7px;background:#fff;color:#1764ff;font-size:7px;font-weight:900;cursor:pointer}.tracksuit-mark-position label,.tracksuit-back-text-box .tracksuit-mark-position label{display:grid;grid-template-columns:82px 1fr 60px;align-items:center;gap:7px;color:#5d6a7f;font-size:8px;font-weight:900}.tracksuit-mark-position input{width:100%;accent-color:#1764ff}.tracksuit-mark-position output{text-align:right;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px}.tracksuit-back-text-box>.tracksuit-mark-position{margin-top:2px}
.tracksuit-quick-swatches{max-height:265px;overflow:auto;padding:2px;scrollbar-width:thin}
@media(min-width:1250px){.tracksuit-logo-grid{grid-template-columns:1fr 1fr}.tracksuit-logo-slot{grid-template-columns:64px 1fr}.tracksuit-logo-preview{width:64px;height:64px}}
@media(max-width:600px){.tracksuit-color-space label{grid-template-columns:62px 1fr 34px}.tracksuit-logo-slot{grid-template-columns:62px 1fr}.tracksuit-logo-preview{width:62px;height:62px}.tracksuit-logo-fields{grid-template-columns:1fr}.tracksuit-back-text-box{gap:8px}.tracksuit-mark-position label,.tracksuit-back-text-box .tracksuit-mark-position label{grid-template-columns:76px 1fr 56px}}
