/* Mockup Builder styles — scoped under #mk-app so they never touch the app. */
#mk-app *{box-sizing:border-box;margin:0;padding:0}
#mk-app{
  --bg:#1d1d1d;--bg2:rgba(255,255,255,.03);--bg3:rgba(255,255,255,.05);--bg4:rgba(255,255,255,.08);
  --card:rgba(255,255,255,.03);--card2:rgba(255,255,255,.05);
  --border:rgba(255,255,255,.06);--border2:rgba(255,255,255,.08);--border3:rgba(255,255,255,.12);
  --text:#dce4f0;--text2:#8a96a6;--text3:#6a7a8e;
  --teal:#5fe6e0;--teal-dim:rgba(51,209,204,.12);
  --red:#ef4444;--green:#22c55e;--dm:'DM Sans',sans-serif;
}
/* Light theme — mirrors app.css [data-theme="light"]. The scoped #mk-app block
   above re-declares the palette (needed for standalone mockup.html, which has
   no theme system and stays dark), so the in-app light theme must re-override
   here. Keep in sync with app.css. */
[data-theme="light"] #mk-app{
  --bg:#f1f1ef;--bg2:#ffffff;--bg3:rgba(0,0,0,.035);--bg4:rgba(0,0,0,.06);
  --card:#ffffff;--card2:#ffffff;
  --border:rgba(0,0,0,.10);--border2:rgba(0,0,0,.13);--border3:rgba(0,0,0,.16);
  --text:#1a1a2e;--text2:#6b7280;--text3:#9ca3af;
  --teal:#26b8b3;--teal-dim:rgba(38,184,179,.1);
  --red:#c63636;--green:#3a9645;
}
/* In-app: the builder is a normal page filling the content area (sidebar +
   topbar stay visible). #pg-mockup is the page wrapper; #mk-app fills it. */
#pg-mockup{padding:0}
#pg-mockup.on{height:calc(100vh - 62px - var(--banner-h, 0px));display:flex;flex-direction:column;overflow:hidden}
#mk-app{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--bg);font-family:var(--dm);color:var(--text);font-size:13px;line-height:1.5;overflow:hidden;padding:1.5rem 1.75rem;box-sizing:border-box}
#mk-app .state{display:none;align-items:center;justify-content:center;flex:1;flex-direction:column;gap:.5rem;padding:2rem;text-align:center}
#mk-app .state.on{display:flex}
#mk-app .spinner{width:28px;height:28px;border:2px solid var(--border3);border-top-color:var(--teal);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
/* On-brand CMYK loader (matches the gang builder + the rest of the app). */
@keyframes cmyk-bounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(calc(var(--cmyk-dot,10px) * -0.9))}}
.cmyk-loader{display:inline-flex;gap:6px;align-items:center;flex-shrink:0}
.cmyk-loader span{width:var(--cmyk-dot,10px);height:var(--cmyk-dot,10px);border-radius:50%;animation:cmyk-bounce .9s ease-in-out infinite}
.cmyk-loader span:nth-child(1){background:#27c5e0}
.cmyk-loader span:nth-child(2){background:#c33bd6;animation-delay:.12s}
.cmyk-loader span:nth-child(3){background:#e8c93a;animation-delay:.24s}
.cmyk-loader span:nth-child(4){background:#dfe4ec;animation-delay:.36s}
#mk-app #app{display:none;flex-direction:column;flex:1;min-height:0}
#mk-app #app.on{display:flex}
/* Embedded as a page: the app's own topbar + sidebar handle navigation, so
   hide the builder's redundant Back link + title (keep the action buttons). */
#mk-app.mk-embed .topbar .divider,#mk-app.mk-embed .topbar-title{display:none}
#mk-app .topbar{display:flex;align-items:center;gap:.85rem;padding:0 0 .85rem 0;flex-shrink:0;background:transparent!important;border-bottom:none!important;height:auto!important}
#mk-app .back-link{display:flex;align-items:center;gap:.25rem;font-size:.78rem;font-weight:600;color:var(--text2);text-decoration:none;padding:.28rem .45rem;border-radius:5px;transition:color .15s,background .15s;flex-shrink:0}
#mk-app .back-link:hover{color:var(--text);background:var(--bg4)}
#mk-app .divider{width:1px;height:16px;background:var(--border2);flex-shrink:0}
#mk-app .topbar-title{font-size:.88rem;font-weight:700}
#mk-app .sp{flex:1}
#mk-app .btn{font-family:var(--dm);font-weight:500;font-size:.78rem;border-radius:6px;padding:.32rem .65rem;cursor:pointer;transition:all .15s;border:none;display:inline-flex;align-items:center;gap:.3rem;white-space:nowrap}
#mk-app .btn:disabled{opacity:.4;cursor:not-allowed}
#mk-app .btn-p{background:#2bc5c0;color:#fff}
#mk-app .btn-p:hover:not(:disabled){background:#22b0ab}
#mk-app .btn-g{background:var(--bg2);border:1px solid var(--border2);color:var(--text)}
#mk-app .btn-g:hover:not(:disabled){background:var(--bg4)}
#mk-app .btn-d{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.2);color:#d04949}
#mk-app .btn-d:hover:not(:disabled){background:rgba(239,68,68,.14)}
#mk-app .body{flex:1;display:flex;min-height:0;overflow:hidden;gap:.85rem}
#mk-app .panel{display:flex;flex-direction:column;overflow:hidden;padding:0 5px;gap:.6rem;background:none;border:none;min-height:0;border-radius:0!important}
#mk-app .panel-l{width:250px;flex-shrink:0;overflow-y:auto}
#mk-app .panel-c{flex:1;min-width:0;overflow:hidden}
#mk-app .panel-r{width:260px;flex-shrink:0;border-left:1px solid var(--border);padding-left:.75rem}
#mk-app .sec-lbl{font-size:.62rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text3);margin-bottom:.32rem}
#mk-app .section{padding-bottom:.7rem}
#mk-app .section:last-child{border-bottom:none;padding-bottom:0}
#mk-app .canvas-wrap{flex:1;overflow:auto;background:var(--card2);border:1px solid var(--border);border-radius:10px;display:flex;padding:1rem;min-height:0;position:relative}
#mk-app .canvas-wrap > .canvas-container{margin:auto!important}
#mk-app .canvas-footer{display:flex;align-items:center;gap:.4rem;flex-shrink:0;padding-top:.4rem}
#mk-app .swatch-grid{display:flex;flex-wrap:wrap;gap:.26rem}
#mk-app .cswatch{width:23px;height:23px;border-radius:5px;border:1.5px solid var(--border2);cursor:pointer;transition:transform .1s;flex-shrink:0}
#mk-app .cswatch:hover{transform:scale(1.18)}
#mk-app .cswatch.on{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--teal)}
#mk-app .vtoggle{display:flex;border-radius:7px;border:1px solid var(--border2);overflow:hidden}
#mk-app .vbtn{flex:1;padding:.3rem 0;font-family:var(--dm);font-size:.72rem;font-weight:600;background:none;border:none;color:var(--text2);cursor:pointer;transition:all .15s}
#mk-app .vbtn.on{background:var(--teal-dim);color:var(--teal)}
#mk-app .ploc-btn{width:100%;text-align:left;padding:.38rem .55rem;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--text2);font-family:var(--dm);font-size:.73rem;font-weight:500;cursor:pointer;transition:all .12s;display:flex;align-items:center;gap:.4rem;margin-bottom:.28rem}
#mk-app .ploc-btn:hover{background:var(--card2);color:var(--text)}
#mk-app .ploc-btn.on{border-color:rgba(95,230,224,.4);background:var(--teal-dim);color:var(--teal)}
#mk-app .ploc-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}
#mk-app .art-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;opacity:.28;pointer-events:none;text-align:center}
#mk-app .art-ctrl{flex-direction:column;gap:.35rem;display:none;flex:1;min-height:0}
#mk-app .sel-art{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.4rem 0;margin-bottom:0;flex:1;min-height:0}
#mk-app .sel-thumb{width:100%;max-width:100%;flex:1;min-height:80px;height:auto;object-fit:contain;border-radius:4px;background:repeating-conic-gradient(#2a2a2a 0% 25%,#222 0% 50%) 0 0/12px 12px}
[data-theme="light"] #mk-app .sel-thumb{background:repeating-conic-gradient(#e4e4e2 0% 25%,#f6f6f4 0% 50%) 0 0/12px 12px}
#mk-app .sel-name{font-size:.64rem;color:var(--text2);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#mk-app .ctrl-row{display:flex;align-items:center;gap:.4rem}
#mk-app .ctrl-lbl{font-size:.62rem;color:var(--text3);width:40px;flex-shrink:0}
#mk-app .ctrl-slider{flex:1;-webkit-appearance:none;height:3px;border-radius:2px;background:var(--border3);outline:none;cursor:pointer}
#mk-app .ctrl-slider::-webkit-slider-thumb{-webkit-appearance:none;width:13px;height:13px;border-radius:50%;background:var(--teal);cursor:pointer}
#mk-app .ctrl-val{font-size:.7rem;color:var(--text2);min-width:32px;text-align:right;flex-shrink:0}
#mk-app .ctrl-num{font-family:var(--dm);font-size:.76rem;background:var(--card2);border:1px solid var(--border);border-radius:5px;padding:.26rem .38rem;color:var(--text);outline:none;width:56px;text-align:center}
#mk-app .ctrl-num:focus{border-color:var(--teal)}
#mk-app .btn-row{display:flex;gap:.28rem}
#mk-app .btn-row .btn{flex:1;justify-content:center}
#mk-app .lib-list{display:flex;flex-direction:column;gap:.25rem;overflow-y:auto;max-height:160px}
#mk-app .lib-row{display:flex;align-items:center;gap:.38rem;padding:.28rem .38rem;border-radius:6px;cursor:pointer;transition:background .12s}
#mk-app .lib-row:hover{background:var(--teal-dim)}
#mk-app .lib-thumb{width:30px;height:30px;object-fit:contain;border-radius:4px;flex-shrink:0;background:var(--bg4)}
#mk-app .lib-name{flex:1;min-width:0;font-size:.63rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text2)}
#mk-app .lib-del{flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border:none;border-radius:4px;background:transparent;color:var(--text3);font-size:1rem;line-height:1;cursor:pointer;opacity:0;transition:all .12s}
#mk-app .lib-row:hover .lib-del{opacity:1}
#mk-app .lib-del:hover{background:rgba(239,68,68,.15);color:#ef4444}
#mk-app .lib-empty{font-size:.63rem;color:var(--text3);text-align:center;padding:.65rem;opacity:.5}
#mk-app ::-webkit-scrollbar{width:4px;height:4px}
#mk-app ::-webkit-scrollbar-track{background:transparent}
#mk-app ::-webkit-scrollbar-thumb{background:var(--border3);border-radius:4px}
#mk-app ::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.22)}
[data-theme="light"] #mk-app ::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.3)}
#mk-app input[type=number]::-webkit-inner-spin-button, #mk-app input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}
#mk-app input[type=number]{-moz-appearance:textfield}
#mk-app #toast{position:fixed;bottom:1.2rem;left:50%;transform:translateX(-50%);background:rgba(20,20,20,.96);border:1px solid var(--border3);border-radius:8px;padding:.42rem .95rem;font-size:.74rem;color:var(--text);z-index:9999;pointer-events:none;opacity:0;transition:opacity .2s;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.4)}
[data-theme="light"] #mk-app #toast{background:#ffffff;box-shadow:0 4px 14px rgba(0,0,0,.14)}
#mk-app #toast.show{opacity:1}
#mk-app #toast.ok{border-color:rgba(34,197,94,.4);color:#22c55e}
#mk-app #toast.err{border-color:rgba(239,68,68,.4);color:#ef4444}
#mk-app .gp-tile{display:flex;align-items:center;gap:.55rem;width:100%;text-align:left;background:none;border:none;border-radius:6px;padding:.35rem 0;cursor:pointer;transition:background .12s}
#mk-app .gp-tile:hover{background:var(--teal-dim)}
#mk-app .gp-tile-thumb{width:38px;height:48px;flex-shrink:0;border-radius:5px;background:#fff center/contain no-repeat;border:1px solid var(--border)}
#mk-app .gp-tile-info{flex:1;min-width:0}
#mk-app .gp-tile-style{font-family:var(--dm);font-size:.78rem;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#mk-app .gp-tile-meta{font-family:var(--dm);font-size:.66rem;color:var(--text3);margin-top:1px}
#mk-app .gp-tile-change{font-family:var(--dm);font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--teal);flex-shrink:0;padding-right:.2rem}
#mk-app .gp-modal{position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;padding:24px}
#mk-app .gp-modal.on{display:flex}
#mk-app .gp-panel{position:relative;width:min(860px,100%);height:min(640px,86vh);background:var(--bg);border:1px solid var(--border3);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.55)}
#mk-app .gp-head{display:flex;align-items:center;padding:14px 18px 10px}
#mk-app .gp-title{font-family:var(--dm);font-size:.95rem;font-weight:700;color:var(--text);flex-shrink:0}
#mk-app .gp-crumb{display:flex;align-items:center;gap:.45rem;font-family:var(--dm);font-size:.98rem;color:var(--text3)}
#mk-app .gp-crumb .gp-seg{cursor:pointer;color:var(--text2)}
#mk-app .gp-crumb .gp-seg:hover{color:var(--teal)}
#mk-app .gp-crumb .gp-cur{color:var(--text);font-weight:600}
#mk-app .gp-crumb .gp-sep{opacity:.5}
#mk-app .gp-nav{display:flex;align-items:center;gap:.5rem;padding:0 18px 12px;border-bottom:1px solid var(--border)}
#mk-app .src-tab{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--dm);font-size:.8rem;font-weight:600;color:var(--text2);background:none;border:1px solid var(--border);border-radius:8px;padding:.4rem .8rem;cursor:pointer;transition:all .14s;flex-shrink:0}
#mk-app .src-tab svg{width:14px;height:14px;flex-shrink:0}
#mk-app .src-tab:hover{color:var(--text);border-color:var(--border3)}
#mk-app .src-tab.on{background:var(--teal-dim);border-color:var(--teal);color:var(--teal)}
#mk-app .gp-brands{display:flex;align-items:flex-start;gap:.4rem;padding:11px 18px 0}
#mk-app .gp-bchips{display:flex;flex-wrap:wrap;gap:.4rem;flex:1;min-width:0}
#mk-app .gp-bchips.collapsed{max-height:64px;overflow:hidden}
#mk-app .gp-btoggle{flex-shrink:0;color:var(--teal)}
#mk-app .gp-bchip{font-family:var(--dm);font-size:.74rem;color:var(--text2);background:none;border:1px solid var(--border);border-radius:6px;padding:.28rem .6rem;cursor:pointer;transition:all .12s}
#mk-app .gp-bchip:hover{border-color:var(--border3);color:var(--text)}
#mk-app .gp-bchip.on{background:var(--teal-dim);border-color:var(--teal);color:var(--teal)}
#mk-app .gp-dots{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:6px}
#mk-app .gp-dot{width:13px;height:13px;border-radius:50%;border:1px solid var(--border3);flex-shrink:0}
#mk-app .gp-dot-more{font-family:var(--dm);font-size:.62rem;color:var(--text3);font-weight:600;padding-left:2px}
#mk-app .gp-instatus{font-family:var(--dm);font-size:.66rem;font-weight:600;margin-top:6px}
#mk-app .gp-addcat{color:var(--teal)}
#mk-app .gp-incat{color:var(--text3)}
#mk-app .gp-search{flex:1;padding:7px 11px;background:var(--card2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:var(--dm);font-size:.82rem;outline:none}
#mk-app .gp-search:focus{border-color:var(--teal)}
#mk-app .gp-close{position:absolute;top:9px;right:14px;z-index:3;background:none;border:none;color:var(--text3);font-size:1.5rem;line-height:1;cursor:pointer;padding:0 .2rem}
#mk-app .gp-filters{padding:11px 18px;border-bottom:1px solid var(--border);display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:16px}
#mk-app .gp-fsel{display:flex;align-items:center;gap:8px}
#mk-app .gp-fsel .gp-flbl{width:auto;padding-top:0}
#mk-app .gp-fsel select{padding:7px 11px;background:var(--card2);border:1px solid var(--border);border-radius:5px;color:var(--text);font-family:var(--dm);font-size:.8rem;outline:none;cursor:pointer;max-width:210px}
#mk-app .gp-fsel select:focus{border-color:var(--teal)}
#mk-app .gp-frow{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}
#mk-app .gp-flbl{width:46px;flex-shrink:0;font-family:var(--dm);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);font-weight:700;padding-top:6px}
#mk-app .gp-chip{font-family:var(--dm);font-size:.72rem;font-weight:600;color:var(--text2);background:var(--card);border:1px solid var(--border);border-radius:6px;padding:5px 10px;cursor:pointer;white-space:nowrap;transition:all .12s}
#mk-app .gp-chip:hover{border-color:var(--border3)}
#mk-app .gp-chip.on{background:var(--teal-dim);border-color:var(--teal);color:var(--teal)}
#mk-app .gp-grid{flex:1;min-height:0;padding:16px 18px;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-auto-rows:min-content;align-content:start;gap:13px}
#mk-app .gp-card{background:var(--card);border:1px solid var(--border);border-radius:4px;overflow:hidden;cursor:pointer;transition:border-color .14s,transform .14s}
#mk-app .gp-card:hover{border-color:var(--teal);transform:translateY(-2px)}
#mk-app .gp-card.on{border-color:var(--teal)}
#mk-app .gp-card-img{height:150px;background:#fff center/contain no-repeat;border-bottom:1px solid var(--border)}
#mk-app .gp-card-body{padding:8px 10px 10px}
#mk-app .gp-card-brand{font-family:var(--dm);font-size:.7rem;color:var(--text3);font-weight:500}
#mk-app .gp-card-style{font-family:var(--dm);font-size:.84rem;font-weight:600;color:var(--text);margin:1px 0 4px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#mk-app .gp-card-meta{font-family:var(--dm);font-size:.66rem;color:var(--text3)}
#mk-app .gp-empty{grid-column:1/-1;padding:2.5rem;text-align:center;color:var(--text3);font-family:var(--dm);font-size:.85rem}

/* "Upload your own garment" tile — matches gp-card footprint */
#mk-app .gp-card-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;min-height:188px;border:1px solid var(--border3);background:var(--card);color:var(--text2);text-align:center}
#mk-app .gp-card-add:hover{border-color:var(--teal);color:var(--teal);transform:none}
#mk-app .gp-card-add .plus{font-size:1.7rem;font-weight:300;line-height:1}
#mk-app .gp-card-add .lbl{font-family:var(--dm);font-size:.72rem;padding:0 10px;line-height:1.25}
#mk-app .gp-card-have .gp-card-img{opacity:.5}
#mk-app .gp-card-have .gp-card-meta{color:var(--teal)}
/* Library category landing tiles */
#mk-app .gp-cat .gp-card-img{height:130px}
#mk-app .gp-cat-name{font-family:var(--dm);font-size:.92rem;font-weight:700;color:var(--text);line-height:1.2}

[data-theme="light"] #mk-app .gp-panel,[data-theme="light"] #mk-app .cg-panel{box-shadow:0 24px 70px rgba(0,0,0,.18)}
/* Custom-garment modal — same panel/field language as the garment picker */
#mk-app .cg-modal{position:fixed;inset:0;z-index:9600;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;padding:24px}
#mk-app .cg-modal.on{display:flex}
#mk-app .cg-panel{width:min(640px,100%);max-height:88vh;overflow-y:auto;background:var(--bg);border:1px solid var(--border3);border-radius:8px;box-shadow:0 24px 70px rgba(0,0,0,.55)}
#mk-app .cg-body{padding:16px 18px;display:flex;flex-direction:column;gap:13px}
#mk-app .cg-field{display:block}
#mk-app .cg-field-color{flex:0 0 auto}
#mk-app .cg-flbl{display:block;font-family:var(--dm);font-size:.62rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text3);margin-bottom:.4rem}
#mk-app .cg-input{width:100%;box-sizing:border-box;font-family:var(--dm);font-size:.82rem;background:var(--card2);border:1px solid var(--border);border-radius:5px;padding:9px 11px;color:var(--text);outline:none}
#mk-app .cg-input:focus{border-color:var(--teal)}
#mk-app .cg-input[type=file]{padding:7px 10px;font-size:.74rem;color:var(--text2);cursor:pointer}
#mk-app .cg-row{display:flex;gap:10px}
#mk-app .cg-row>.cg-field{flex:1}
#mk-app .cg-row-end{align-items:flex-end}
#mk-app .cg-color{width:42px;height:38px;padding:2px;background:var(--card2);border:1px solid var(--border);border-radius:5px;cursor:pointer}
#mk-app .cg-req{color:var(--red)}
#mk-app .cg-hint{font-family:var(--dm);font-size:.68rem;color:var(--text3);line-height:1.45}
#mk-app .cg-save{width:100%;justify-content:center;padding:.6rem;font-size:.82rem;margin-top:.15rem}
#mk-app .cg-check{display:flex;align-items:center;gap:.5rem;font-family:var(--dm);font-size:.76rem;color:var(--text2);cursor:pointer}
#mk-app .cg-check input{accent-color:var(--teal);cursor:pointer;width:15px;height:15px}
