/* Magnets by Love — builder (landing-page layout) + Uploadly-style upload/crop */
.mbl-app{
  --mbl-purple:#814399;--mbl-deep:#5e2c73;--mbl-lilac:#f5eef9;--mbl-lilac2:#ece0f3;
  --mbl-ink:#2a2330;--mbl-muted:#6f6878;--mbl-line:#eae3ef;--mbl-bleed:#b5446e;
  font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--mbl-ink);max-width:1080px;margin:0 auto;line-height:1.55;
}
.mbl-app *{box-sizing:border-box}

/* Sit directly on the section background (avoid a white card wrapping white cards) */
.builder-wrap{background:transparent !important;border:0 !important;box-shadow:none !important;padding:0 !important}

/* ---------- two-column builder ---------- */
.mbl-builder{display:grid;grid-template-columns:1fr 1.05fr;gap:34px;align-items:start}
@media(max-width:860px){.mbl-builder{grid-template-columns:1fr}}

/* preview card */
.mbl-preview{background:#fff;border-radius:24px;padding:34px 28px;box-shadow:0 18px 44px rgba(42,35,48,.1);text-align:center;position:sticky;top:20px}
@media(max-width:860px){.mbl-preview{position:relative;top:0;order:-1}}
.mbl-preview-stage{display:grid;gap:8px;margin-bottom:18px}
.mbl-pv-cell{position:relative;border-radius:6px;overflow:hidden;background:#efeaf3;box-shadow:0 4px 10px rgba(42,35,48,.14)}
.mbl-pv-cell img{width:100%;height:100%;object-fit:cover;display:block}
.mbl-pv-ph{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--mbl-lilac2),#cdb6da)}
.mbl-pv-num{color:#fff;font-weight:800;font-size:.78rem;opacity:.92}
.mbl-pv-title{font-size:1.3rem;font-weight:800;margin:0}
.mbl-pv-sub{color:var(--mbl-muted);font-size:.95rem;margin-top:2px}

/* form card */
.mbl-form{background:#fff;border-radius:24px;padding:30px;box-shadow:0 18px 44px rgba(42,35,48,.1)}
.mbl-field{margin-bottom:24px}
.mbl-field-h{display:flex;align-items:baseline;justify-content:space-between;font-weight:800;font-size:1.08rem;margin-bottom:12px}
.mbl-field-h small{font-weight:600;color:var(--mbl-muted);font-size:.84rem}

/* size cards */
.mbl-size-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mbl-size-card{cursor:pointer;border:2px solid var(--mbl-line);border-radius:16px;padding:20px 16px;text-align:center;transition:.15s;background:#fff}
.mbl-size-card:hover{border-color:var(--mbl-lilac2)}
.mbl-size-card.is-active{border-color:var(--mbl-purple);background:var(--mbl-lilac)}
.mbl-swatch{margin:0 auto 12px;background:var(--mbl-purple);border-radius:6px;transition:.15s}
.mbl-swatch.sq{width:36px;height:36px}
.mbl-swatch.pt{width:30px;height:42px}
.mbl-swatch.ls{width:42px;height:30px}
.mbl-size-t{font-weight:800;font-size:1.05rem}
.mbl-size-s{font-size:.82rem;color:var(--mbl-muted)}

/* orientation toggle */
.mbl-orient{display:flex;align-items:center;gap:8px;margin-top:12px}
.mbl-orient-label{font-size:.88rem;color:var(--mbl-muted);margin-right:2px}
.mbl-pill{cursor:pointer;border:2px solid var(--mbl-line);background:#fff;border-radius:999px;padding:7px 16px;font-weight:700;font-size:.86rem;color:var(--mbl-ink);transition:.15s}
.mbl-pill:hover{border-color:var(--mbl-lilac2)}
.mbl-pill.is-active{border-color:var(--mbl-purple);background:var(--mbl-purple);color:#fff}

/* set cards */
.mbl-set-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}
@media(max-width:520px){.mbl-set-cards{grid-template-columns:repeat(3,1fr)}}
.mbl-set-card{position:relative;cursor:pointer;border:2px solid var(--mbl-line);border-radius:14px;padding:14px 6px;text-align:center;transition:.15s;background:#fff}
.mbl-set-card:hover{border-color:var(--mbl-lilac2)}
.mbl-set-card.is-active{border-color:var(--mbl-purple);background:var(--mbl-lilac)}
.mbl-set-n{font-weight:800;font-size:1.15rem;line-height:1}
.mbl-set-m{font-size:.72rem;color:var(--mbl-muted)}
.mbl-set-ea{font-size:.72rem;color:var(--mbl-purple);font-weight:700;margin-top:3px}
.mbl-pop{position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:var(--mbl-purple);color:#fff;font-size:.56rem;font-weight:800;letter-spacing:.06em;padding:3px 8px;border-radius:999px;white-space:nowrap}

/* upload button */
.mbl-upload-btn{width:100%;cursor:pointer;border:2px dashed var(--mbl-lilac2);background:var(--mbl-lilac);color:var(--mbl-purple);font-weight:800;font-size:1rem;padding:15px;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:8px;transition:.15s}
.mbl-upload-btn:hover{border-color:var(--mbl-purple);background:#fff}
.mbl-upload-btn.is-done{border-style:solid;border-color:var(--mbl-purple);background:#fff}
.mbl-up-ic{font-weight:800}

/* quantity */
.mbl-qty{display:flex;align-items:center;gap:16px}
.mbl-stepper{display:inline-flex;align-items:center;border:2px solid var(--mbl-line);border-radius:999px;overflow:hidden}
.mbl-stepper button{width:42px;height:42px;border:none;background:#fff;font-size:1.4rem;cursor:pointer;color:var(--mbl-purple);font-weight:700}
.mbl-stepper button:hover{background:var(--mbl-lilac)}
.mbl-stepper span{min-width:38px;text-align:center;font-weight:800;font-size:1.05rem}
.mbl-qty-lab{color:var(--mbl-muted);font-size:.9rem}

/* price + cta */
.mbl-pricerow{display:flex;align-items:baseline;gap:12px;margin:6px 0 14px}
.mbl-price{font-size:2.4rem;font-weight:800}
.mbl-each{color:var(--mbl-muted);font-weight:600}
.mbl-cta{width:100%;border:none;cursor:pointer;background:var(--mbl-purple);color:#fff;font-weight:800;font-size:1.1rem;padding:16px;border-radius:999px;transition:.15s;box-shadow:0 8px 20px rgba(129,67,153,.3)}
.mbl-cta:hover:not(:disabled){background:var(--mbl-deep);transform:translateY(-1px)}
.mbl-cta:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
.mbl-status{font-size:.85rem;min-height:16px;text-align:center;color:var(--mbl-muted);margin-top:8px}
.mbl-status.is-error{color:#b3261e}
.mbl-status.is-ok{color:#1b7a3f}
.mbl-reassure-row{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin-top:14px;font-size:.82rem;color:var(--mbl-muted);font-weight:600}
.mbl-reassure-row span{display:inline-flex;align-items:center;gap:5px}

/* ---------- full-screen panels ---------- */
.mbl-screen{position:fixed;inset:0;z-index:99990;background:#fff;display:flex;flex-direction:column}
.mbl-screen[hidden]{display:none}
.mbl-screen-head{display:flex;align-items:center;justify-content:space-between;padding:18px 26px;border-bottom:1px solid var(--mbl-line);flex:0 0 auto}
.mbl-screen-head strong{font-size:1.15rem}
.mbl-x{background:none;border:none;font-size:1.7rem;line-height:1;cursor:pointer;color:var(--mbl-ink)}
.mbl-screen-body{flex:1 1 auto;overflow:auto;padding:26px}
.mbl-screen-foot{flex:0 0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:16px 26px;border-top:1px solid var(--mbl-line)}
.mbl-selcount{color:var(--mbl-muted)}
.mbl-selcount b{color:var(--mbl-ink)}
.mbl-foot-mid{display:flex;flex-direction:column;align-items:center;gap:6px}
.mbl-foot-credit{justify-self:end;color:var(--mbl-muted);font-size:.78rem;opacity:.7}
.mbl-btn-accent{border:none;cursor:pointer;background:var(--mbl-purple);color:#fff;font-weight:800;font-size:1rem;padding:12px 30px;border-radius:10px;transition:.15s}
.mbl-btn-accent:hover:not(:disabled){background:var(--mbl-deep)}
.mbl-btn-accent:disabled{opacity:.4;cursor:not-allowed}
.mbl-bulkrow{text-align:center;margin-bottom:18px}
.mbl-bleednote{display:flex;align-items:flex-start;gap:10px;justify-content:center;color:var(--mbl-muted);font-size:.85rem;margin-bottom:22px}
.mbl-bleed-sw{width:22px;height:22px;border:2px dashed var(--mbl-bleed);border-radius:4px;flex:0 0 auto;margin-top:1px}

/* slot grid */
.mbl-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:980px;margin:0 auto}
@media(max-width:760px){.mbl-slots{grid-template-columns:repeat(2,1fr);gap:16px}}
@media(max-width:480px){.mbl-slots{grid-template-columns:1fr}}
.mbl-slot-wrap{display:flex;flex-direction:column}
.mbl-slot{position:relative;border-radius:6px;background:#f3f1f4;overflow:hidden;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;text-align:center;transition:.15s}
.mbl-slot.is-portrait{aspect-ratio:5/7}
.mbl-slot.is-landscape{aspect-ratio:7/5}
.mbl-slot.is-empty{cursor:pointer;border:1px solid var(--mbl-line)}
.mbl-slot.is-empty.is-drag{background:var(--mbl-lilac);outline:2px dashed var(--mbl-purple);outline-offset:-6px}
.mbl-slot .mbl-num{position:absolute;top:10px;right:14px;color:#9a93a3;font-weight:700;font-size:1.05rem;z-index:2}
.mbl-slot .mbl-empty-in{display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--mbl-muted);padding:18px}
.mbl-slot .mbl-empty-in .mbl-dd{font-size:.92rem}
.mbl-slot .mbl-ph-ic{width:54px;height:54px;color:#c9c2d1}
.mbl-up-btn2{border:none;cursor:pointer;background:var(--mbl-purple);color:#fff;font-weight:800;padding:10px 22px;border-radius:8px;font-size:.92rem}
.mbl-up-btn2:hover{background:var(--mbl-deep)}
.mbl-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mbl-slot-badge{position:absolute;right:8px;bottom:8px;z-index:3;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:800;border-radius:50%;color:#fff;background:#1b7a3f;box-shadow:0 2px 6px rgba(0,0,0,.2)}
.mbl-slot-prog{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:rgba(243,241,244,.97)}
.mbl-ring{width:54px;height:54px;transform:rotate(-90deg)}
.mbl-ring .bg{fill:none;stroke:#e3dbea;stroke-width:3}
.mbl-ring .fg{fill:none;stroke:var(--mbl-purple);stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset .2s ease}
.mbl-slot-prog .pct{font-weight:800;color:var(--mbl-purple);font-size:.95rem}
.mbl-prog-msg{font-weight:700;color:#b3261e;font-size:.85rem}
.mbl-retry{cursor:pointer;border:none;background:#b3261e;color:#fff;font-weight:800;padding:8px 18px;border-radius:8px;font-size:.85rem}
.mbl-retry:hover{background:#8f1e18}
.mbl-slot.is-filled:after{content:"";position:absolute;inset:8%;border:2px dashed rgba(255,255,255,.95);outline:2px dashed var(--mbl-bleed);outline-offset:0;border-radius:3px;pointer-events:none;z-index:2}
.mbl-slot-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.mbl-slot-actions button{flex:1;min-width:84px;cursor:pointer;border:1px solid var(--mbl-line);background:#fff;border-radius:8px;padding:8px 6px;font-weight:700;font-size:.82rem;color:var(--mbl-ink);display:inline-flex;align-items:center;justify-content:center;gap:5px;transition:.15s}
.mbl-slot-actions button:hover{border-color:var(--mbl-purple);color:var(--mbl-purple)}

/* source picker */
.mbl-overlay{position:fixed;inset:0;z-index:99995;background:rgba(42,35,48,.45);display:flex;align-items:center;justify-content:center;padding:18px}
.mbl-overlay[hidden]{display:none}
.mbl-source-card{background:#fff;border-radius:18px;width:min(440px,96vw);padding:22px;box-shadow:0 30px 70px rgba(0,0,0,.3)}
.mbl-dropzone{border:1.5px dashed #cfc7d6;border-radius:14px;padding:34px 18px;text-align:center;cursor:pointer;transition:.15s}
.mbl-dropzone.is-drag,.mbl-dropzone:hover{background:var(--mbl-lilac);border-color:var(--mbl-purple)}
.mbl-dz-ic{width:60px;height:60px;border-radius:50%;background:#f3f1f4;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;font-size:1.5rem;color:var(--mbl-ink)}
.mbl-dz-t{font-weight:800;font-size:1.15rem}
.mbl-source-list{list-style:none;margin:18px 0 8px;padding:0}
.mbl-source-list li{display:flex;align-items:center;gap:14px;padding:14px 6px;border-radius:10px;cursor:pointer;font-size:1.05rem;font-weight:600;transition:.12s}
.mbl-source-list li:hover{background:var(--mbl-lilac)}
.mbl-si{width:26px;text-align:center;font-size:1.1rem}
.mbl-source-cancel{width:100%;border:none;background:#f3f1f4;color:var(--mbl-ink);font-weight:700;padding:14px;border-radius:12px;cursor:pointer;font-size:1rem;margin-top:8px}
.mbl-source-cancel:hover{background:#e9e5ee}

/* crop editor */
.mbl-editor-body{flex:1 1 auto;background:#f3f1f4;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:14px}
.mbl-editor-stage{max-width:920px;width:100%;max-height:100%}
.mbl-editor-stage img{max-width:100%;display:block}
.mbl-editor .cropper-view-box{outline:1px solid rgba(255,255,255,.9)}
.mbl-editor .cropper-view-box:after{content:"";position:absolute;inset:8%;border:2px dashed rgba(255,255,255,.95);outline:2px dashed var(--mbl-bleed);pointer-events:none}
.mbl-editor-tools{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px}
.mbl-ratio-chip{background:var(--mbl-purple);color:#fff;font-weight:800;font-size:.85rem;padding:8px 14px;border-radius:8px}
.mbl-tool{cursor:pointer;border:1.5px solid var(--mbl-line);background:#fff;border-radius:10px;width:44px;height:40px;font-size:1.1rem;color:var(--mbl-ink);display:inline-flex;align-items:center;justify-content:center}
.mbl-tool:hover{border-color:var(--mbl-purple);color:var(--mbl-purple)}
.mbl-editor-foot{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:14px 26px;border-top:1px solid var(--mbl-line)}
.mbl-x-foot{background:none;border:none;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--mbl-muted)}
.mbl-ed-ok{width:120px;border-radius:10px;font-size:1.2rem}
