.cbd-app{--blue:#092c4b;--pink:#fa566b;--teal:#079eac;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--blue);background:#fff;border:1px solid #e8edf2;border-radius:19px;padding:22px;margin:18px 0 23px;box-shadow:0 10px 36px #0e30500c}.cbd-app *{box-sizing:border-box}.cbd-app-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #edf0f5;padding-bottom:12px;margin-bottom:17px}.cbd-app-head h2{font-size:clamp(19px,2vw,27px);margin:3px 0 4px;line-height:1.2;color:var(--blue)}.cbd-app-head p,.cbd-app p{margin:4px 0}.cbd-kicker{font-weight:800;letter-spacing:.1em;font-size:11px;color:var(--teal)}.cbd-pill{white-space:nowrap;border-radius:40px;padding:5px 10px;background:#e5f7f8;color:#087b83;font-size:12px;font-weight:700}.cbd-grid{display:grid;grid-template-columns:minmax(245px,1fr) minmax(260px,1.08fr);gap:18px;align-items:start}.cbd-tools{background:#fbfbfd;border:1px solid #e8edf1;border-radius:14px;padding:16px}.cbd-field{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:750;color:#233e53;flex:1;min-width:0;margin-bottom:10px}.cbd-field select,.cbd-field input:not([type=color]):not([type=range]){width:100%;border:1px solid #d6dfe7;border-radius:9px;background:#fff;padding:10px;font:inherit;min-height:43px}.cbd-field input[type=color]{background:#fff;border:1px solid #dce4ea;border-radius:9px;width:100%;height:42px;padding:4px}.cbd-field input[type=range]{accent-color:var(--teal);width:100%}.cbd-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;background:#e9f0f3;padding:3px;border-radius:10px;margin:8px 0 13px}.cbd-tabs button{padding:9px 2px;border:0;border-radius:8px;background:transparent;color:#466074;font-weight:700;font-size:12px;cursor:pointer}.cbd-tabs button.active{color:#fff;background:var(--teal)}.cbd-tab-panel{min-height:104px}.cbd-tab-panel[hidden]{display:none}.cbd-upload{border:2px dashed #a6cbd1;background:#f3fbfb;min-height:95px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;cursor:pointer;gap:3px}.cbd-upload strong{color:#067d89}.cbd-upload span,.cbd-tip{color:#587181;font-size:12px}.cbd-row{display:flex;gap:8px;align-items:center}.cbd-action{border:0;background:var(--teal);color:white;font-weight:800;padding:10px 13px;border-radius:9px;cursor:pointer}.cbd-shapes{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:10px}.cbd-shapes button,.cbd-small{border:1px solid #cedbe3;border-radius:8px;background:#fff;color:var(--blue);padding:9px 7px;cursor:pointer;font-weight:650;font-size:12px}.cbd-small:disabled{opacity:.4;cursor:not-allowed}.cbd-layer{border-top:1px solid #e1e6ec;margin-top:13px;padding-top:12px}.cbd-layer>strong{display:block;font-size:13px}.cbd-selection{font-size:12px;color:#5f7383}.cbd-reset{background:transparent;border:none;color:#b44750;font-weight:700;margin-top:10px;padding:4px 0;cursor:pointer}.cbd-preview-col{border:1px solid #e5ebee;border-radius:14px;padding:15px;background:linear-gradient(135deg,#f0faf9,#fff6f1)}.cbd-preview-top,.cbd-preview-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px}.cbd-preview-top label{font-size:12px;color:#547081}.cbd-stage{border:1px solid #edf2f5;background:repeating-conic-gradient(#e7eef1 0% 25%,white 0% 50%) 50% / 20px 20px;border-radius:14px;display:flex;justify-content:center;align-items:center;min-height:285px;margin:11px auto;padding:13px;max-width:520px;overflow:hidden}.cbd-canvas{display:block;width:100%;max-width:470px;height:auto;box-shadow:0 9px 20px #102b4430;touch-action:none;cursor:move}.cbd-stage.round .cbd-canvas{border-radius:50%}.cbd-stage.square .cbd-canvas{border-radius:6px}.cbd-preview-bottom{color:#41677a}.cbd-safe-note{font-size:12px!important;color:#557080;margin:10px 0!important}.cbd-approval{display:flex;gap:9px;align-items:flex-start;color:#133f55;font-size:13px;font-weight:650;line-height:1.4;border-top:1px solid #d9e5e9;padding-top:12px}.cbd-approval input{accent-color:var(--teal);margin-top:3px}.cbd-message{min-height:20px;color:#087d78;font-size:13px;font-weight:700;margin-top:10px}.cbd-error{color:#b92d44}.cbd-app [disabled]{opacity:.5}.cbd-app .cbd-tab-panel input,.cbd-app select{max-width:100%}@media(max-width:760px){.cbd-app{padding:12px;margin:8px 0}.cbd-grid{display:flex;flex-direction:column-reverse;gap:10px}.cbd-preview-col,.cbd-tools{width:100%;padding:11px}.cbd-preview-col{position:sticky;top:0;z-index:2;box-shadow:0 8px 18px #17384a11}.cbd-stage{min-height:0;height:clamp(155px,48vw,260px);margin:5px auto;padding:6px}.cbd-canvas{max-height:100%;width:auto;max-width:100%;object-fit:contain}.cbd-app-head{padding-bottom:7px;margin-bottom:9px}.cbd-pill{display:none}.cbd-preview-bottom{font-size:10px}.cbd-approval{padding-top:7px}.cbd-safe-note{display:none}.cbd-tab-panel{min-height:60px}.cbd-tabs button{font-size:11px}}
.cbd-cal-warning{color:#88461a;background:#fff4dd;border:1px solid #edcf9c;padding:9px;border-radius:7px;font-size:12px;font-weight:700}.cbd-cal-warning[hidden]{display:none}

/* v0.2.6: curved type & background photo fit/fill */
.cbd-photo-controls{border:1px solid #d7e9ed;background:#f6fbfc;border-radius:11px;padding:10px;margin:10px 0}
.cbd-photo-controls .cbd-field{font-size:12px}
.cbd-zoom-value,.cbd-arc-value,.cbd-letter-value{font-size:12px;color:#05899a;font-weight:700}
.cbd-photo-controls input[type=range],.cbd-tab-panel input[type=range]{width:100%;accent-color:#079eac}
.cbd-tab-panel .cbd-row{align-items:flex-start}
.cbd-tab-panel .cbd-field select{min-height:42px}
@media(max-width:460px){.cbd-photo-controls .cbd-row,.cbd-tab-panel[data-panel=text] .cbd-row{gap:8px}.cbd-photo-controls{padding:9px}}

/* Product-gallery mockup separate from editable press-cut canvas. */
.cbd-product-gallery{background:#faf9f7;border:1px solid #eee7df;border-radius:16px;margin:5px 0 18px;padding:16px;text-align:center}
.cbd-gallery-main{height:310px;border-radius:14px;background:radial-gradient(ellipse at 50% 31%,#fff 0,#f7f4ee 54%,#e9e5dc 100%);display:flex;align-items:center;justify-content:center;overflow:hidden}
.cbd-mockup-disc{position:relative;width:260px;height:260px;flex:none;border-radius:50%;padding:10px;background:radial-gradient(circle at 34% 25%,#fff 0,#f9f9f9 57%,#cbd0d1 78%,#e9edef 89%,#a8adb3 100%);box-shadow:inset 3px 5px 8px #ffffffd4,inset -5px -5px 7px #4d556438,9px 14px 22px #5e606047,0 2px 2px #aaa;display:flex;align-items:center;justify-content:center}
.cbd-mockup-disc:after{content:'';position:absolute;inset:8px;border-radius:50%;border:2px solid #ffffff80;box-shadow:inset 3px 4px 5px #fff9;pointer-events:none}
.cbd-mockup-disc.square,.cbd-mockup-disc.square:after{border-radius:15%}
.cbd-mockup-canvas{display:block;width:100%;height:100%;border-radius:50%;box-shadow:inset 0 0 3px #8996a6;object-fit:contain}
.cbd-mockup-disc.square .cbd-mockup-canvas{border-radius:12%}
.cbd-mockup-disc.blank .cbd-mockup-canvas,.cbd-mockup-disc.back .cbd-mockup-canvas{opacity:0}
.cbd-mockup-pin{display:none;position:absolute;width:74%;height:8px;top:49%;left:13%;border:1px solid #84898d;border-radius:12px;background:linear-gradient(#e5e8eb,#9ea7ac,#f6f7f9);transform:rotate(-8deg);box-shadow:0 2px 3px #6471785a}
.cbd-mockup-pin:before,.cbd-mockup-pin:after{content:'';position:absolute;top:-10px;height:27px;width:12px;border:3px solid #9fa8ad;border-radius:12px}
.cbd-mockup-pin:before{left:5px}.cbd-mockup-pin:after{right:4px}
.cbd-mockup-disc.back .cbd-mockup-pin{display:block}
.cbd-gallery-thumbs{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:11px}
.cbd-gallery-thumbs button{background:#fff;color:#244b60;border:1px solid #d9e2e8;border-radius:9px;min-height:39px;padding:7px 12px;font-weight:700;font-size:12px;cursor:pointer}
.cbd-gallery-thumbs button.active{border-color:#079eac;color:#087d89;background:#e9f7f8}
.cbd-gallery-note{font-size:11px!important;color:#718090;margin-top:10px!important}
@media(max-width:760px){.cbd-product-gallery{padding:8px;margin:7px 0 13px}.cbd-gallery-main{height:230px}.cbd-mockup-disc{width:192px;height:192px;padding:7px}.cbd-gallery-thumbs button{min-height:38px;padding:6px 11px}.cbd-gallery-note{line-height:1.3}}


/* v0.2.7 - Real product gallery, separate from production artwork editing. */
.cbd-app{max-width:1100px;margin:16px auto;padding:clamp(13px,2.3vw,27px);font-family:system-ui,-apple-system,Segoe UI,Arial,sans-serif}
.cbd-app-head{border:0;margin-bottom:14px;padding:0}
.cbd-app-head h2{font-family:Georgia,'Times New Roman',serif;font-weight:700;font-size:clamp(23px,3vw,34px);margin:5px 0 7px;line-height:1.12}
.cbd-app-head p{font-size:14px;color:#586a7c}
.cbd-product-gallery{border:0;background:transparent;padding:0;margin:0 0 19px;text-align:left}
.cbd-gallery-main{height:clamp(360px,52vw,570px);position:relative;overflow:hidden;border:1px solid #e9e5de;border-radius:20px;background:
  radial-gradient(ellipse 60% 12% at 50% 86%,rgba(50,41,28,.11),transparent 82%),
  radial-gradient(ellipse 78% 78% at 52% 36%,rgba(255,255,255,.92),transparent),
  linear-gradient(126deg,#f2f0eb 0%,#eae7e1 47%,#faf9f7 100%);
  display:flex;align-items:center;justify-content:center;isolation:isolate}
.cbd-gallery-main:before{content:'';position:absolute;inset:0;opacity:.11;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.35' numOctaves='3' seed='6' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}
.cbd-photo-label{position:absolute;top:16px;left:18px;z-index:4;color:#525964;background:#ffffffcc;border:1px solid #ffffffaa;font-size:11px;font-weight:720;letter-spacing:.025em;padding:7px 12px;border-radius:40px;backdrop-filter:blur(3px)}
.cbd-mockup-disc{--disc-size:min(76%,430px);position:relative;z-index:1;width:var(--disc-size);height:auto;aspect-ratio:1;padding:9px;flex:none;overflow:visible;border-radius:50%;background:linear-gradient(137deg,#fff 0%,#f7f8f8 21%,#b1b8ba 51%,#fbfbfb 74%,#95999b 99%);box-shadow:inset 0 0 2px 1px #fff,inset -3px -3px 6px #3c4a5033,2px 5px 2px #77777727,16px 25px 32px #433a2f34,2px 2px 6px #fff9;display:flex;align-items:center;justify-content:center;transform:perspective(800px) rotateX(2deg)}
.cbd-mockup-disc:before{content:'';position:absolute;inset:1%;pointer-events:none;z-index:3;border-radius:inherit;box-shadow:inset 6px 8px 11px #ffffff75,inset -6px -10px 15px #2637461b;background:linear-gradient(138deg,#ffffff42 0%,transparent 20%,transparent 75%,#0c18300d 97%)}
.cbd-mockup-disc:after{content:'';position:absolute;inset:6px;border-radius:inherit;border:1px solid #fff9;box-shadow:inset 1px 2px 3px #fff7;pointer-events:none;z-index:2}
.cbd-mockup-canvas{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;box-shadow:none;background:#fff;overflow:hidden}
.cbd-mockup-disc.square,.cbd-mockup-disc.square:after,.cbd-mockup-disc.square:before{border-radius:11%}
.cbd-mockup-disc.square .cbd-mockup-canvas{border-radius:9%}
.cbd-mockup-disc.blank .cbd-mockup-canvas,.cbd-mockup-disc.back .cbd-mockup-canvas{opacity:0}
.cbd-mockup-disc.back{padding:12px;background:radial-gradient(circle at 41% 34%,#e4e4e4,#aeb6b9 70%,#7b8185 98%)}
.cbd-mockup-disc.back:before{inset:10px;border-radius:inherit;background:radial-gradient(circle at 36% 35%,#f8f8f8,#c6cace 68%,#989fa3 100%);box-shadow:inset 3px 5px 13px #fff9,inset -4px -7px 12px #2222221b}
.cbd-mockup-pin{display:none;z-index:4;top:49%;left:11%;width:78%;height:10px;transform:rotate(-7deg);border:1px solid #777;border-radius:10px;background:linear-gradient(180deg,#fafafa,#b3b3b3 44%,#676e71 68%,#ddd);box-shadow:0 2px 3px #2224,0 -1px 1px #fff}
.cbd-mockup-pin:before,.cbd-mockup-pin:after{top:-11px;height:29px;width:16px;border:3px solid #93999a;box-shadow:inset 2px 2px 4px #aaa}
.cbd-mockup-disc.back .cbd-mockup-pin{display:block}
.cbd-product-gallery[data-size='round-125'] .cbd-mockup-disc{--disc-size:min(62%,350px)}
.cbd-product-gallery[data-size='round-225'] .cbd-mockup-disc{--disc-size:min(75%,430px)}
.cbd-product-gallery[data-size='round-350'] .cbd-mockup-disc{--disc-size:min(84%,470px)}
.cbd-product-gallery[data-size='square-200'] .cbd-mockup-disc{--disc-size:min(73%,410px)}
.cbd-gallery-thumbs{justify-content:flex-start;flex-wrap:nowrap;gap:12px;margin:12px 0 0;overflow-x:auto;padding-bottom:3px;scrollbar-width:thin}
.cbd-gallery-thumbs button{border:1px solid transparent;background:transparent;display:flex;align-items:center;flex-direction:column;gap:4px;padding:5px;min-width:86px;font-size:11px;color:#546479;border-radius:11px;cursor:pointer}
.cbd-gallery-thumbs button.active{background:#e8f8f9;border-color:#0a9daa;color:#086c7a}
.cbd-gallery-thumbs button .cbd-thumb{height:67px;width:78px;background:#eeece6;border:1px solid #e2dfd9;border-radius:8px;display:flex;align-items:center;justify-content:center}
.cbd-gallery-thumbs button .cbd-mini-disc{height:52px;width:52px;border-radius:50%;background:#fff;border:2px solid #d8dbdd;box-shadow:3px 5px 7px #39332a24,inset -2px -2px 5px #d3d6d7;display:block}
.cbd-gallery-thumbs .cbd-thumb-art .cbd-mini-disc{background:radial-gradient(circle at center,#fff 0 15%,#eaf6f3 16% 32%,#fb6880 33% 48%,#fff0 49%),#fff;}
.cbd-gallery-thumbs .cbd-thumb-back .cbd-mini-disc{display:grid;place-items:center;background:radial-gradient(circle at 44% 34%,#fff,#b6bec1 92%)}
.cbd-mini-pin{height:4px;width:37px;background:linear-gradient(#fff,#666,#c7c7c7);border:1px solid #888;border-radius:5px;transform:rotate(-9deg)}
.cbd-gallery-thumbs button span:last-child{font-weight:730}
.cbd-gallery-note{margin:7px 0 0!important;font-size:11px!important;color:#687784}
.cbd-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:11px}
.cbd-tools{background:#fff;border-color:#e0e7ea}
.cbd-production-details{margin:3px 0 0;border:1px solid #e1e8ea;border-radius:13px;background:#f6fafb;overflow:hidden}
.cbd-production-details>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 16px;font-size:13px;font-weight:750;cursor:pointer;color:#16445a}
.cbd-production-details>summary::-webkit-details-marker{display:none}
.cbd-production-details>summary:after{content:'+';font-size:23px;font-weight:450;color:#1699a3}
.cbd-production-details[open]>summary:after{content:'−'}
.cbd-production-details>summary small{font-weight:500;color:#667e87;font-size:11px;margin-left:auto}
.cbd-production-details .cbd-preview-col{position:static;max-width:none;width:100%;padding:12px;margin:0;border:0;border-top:1px solid #e4ecef;border-radius:0;background:#fff;box-shadow:none}
.cbd-production-details .cbd-stage{max-width:520px;height:auto;min-height:250px;padding:8px;margin:10px auto}
.cbd-production-details .cbd-canvas{width:100%;max-height:none;height:auto}
.cbd-approval{border:1px solid #c9e4de;background:#f0faf7;border-radius:12px;padding:13px 14px;margin:4px 0 10px;align-items:center;gap:11px;font-size:13px}
.cbd-approval input{height:18px;width:18px;flex-shrink:0}
@media(max-width:760px){
 .cbd-app{padding:12px;margin:8px 0}
 .cbd-gallery-main{height:clamp(340px,92vw,480px);border-radius:14px}
 .cbd-product-gallery[data-size='round-125'] .cbd-mockup-disc{--disc-size:min(67%,285px)}
 .cbd-product-gallery[data-size='round-225'] .cbd-mockup-disc{--disc-size:min(82%,340px)}
 .cbd-product-gallery[data-size='round-350'] .cbd-mockup-disc{--disc-size:min(90%,385px)}
 .cbd-product-gallery[data-size='square-200'] .cbd-mockup-disc{--disc-size:min(81%,335px)}
 .cbd-gallery-thumbs .cbd-thumb{width:68px!important;height:60px!important}
 .cbd-gallery-thumbs button{min-width:78px}
 .cbd-gallery-thumbs button .cbd-mini-disc{width:48px;height:48px}
 .cbd-grid{display:grid;grid-template-columns:1fr}
 .cbd-tools{width:100%}
 .cbd-production-details>summary{display:flex;flex-wrap:wrap;gap:3px 9px}
 .cbd-production-details>summary small{margin-left:0}
 .cbd-production-details>summary:after{margin-left:auto}
}

.cbd-gallery-mini-canvas{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}
.cbd-product-gallery[data-size='square-200'] .cbd-gallery-mini-canvas,.cbd-product-gallery[data-size='square-200'] .cbd-gallery-thumbs .cbd-mini-disc{border-radius:12%}

/* v0.2.8 — Full-bleed wrapped product, with realistic translucent rim glare.
   Glare exists ONLY in the product mockup; the 300-DPI production image has none. */
.cbd-mockup-disc{
 padding:0;overflow:hidden;isolation:isolate;
 background:transparent;
 border-radius:50%;
 box-shadow:16px 26px 36px rgba(46,39,35,.27),3px 6px 6px rgba(31,36,42,.16),
            0 1px 1px rgba(255,255,255,.48);
}
.cbd-mockup-canvas{
 display:block;width:100%;height:100%;border-radius:inherit;
 object-fit:fill;background:transparent;box-shadow:none;
}
/* Reflected studio light across the upper-left edge and a soft lower-right bevel.
   Transparent lighting preserves the actual ink colors beneath it. */
.cbd-mockup-disc:before{
 content:'';position:absolute;z-index:2;inset:0;pointer-events:none;
 border-radius:inherit;
 background:
   radial-gradient(ellipse 65% 37% at 30% 7%,rgba(255,255,255,.45),rgba(255,255,255,.11) 44%,transparent 85%),
   radial-gradient(ellipse 45% 38% at 82% 88%,rgba(6,16,28,.10),transparent 80%),
   linear-gradient(137deg,rgba(255,255,255,.12),transparent 32%,transparent 67%,rgba(14,26,40,.07));
 box-shadow:inset 5px 7px 10px rgba(255,255,255,.33),
            inset -8px -9px 11px rgba(19,31,40,.15);
}
.cbd-mockup-disc:after{
 content:'';position:absolute;z-index:3;inset:0;pointer-events:none;
 border-radius:inherit;border:0;box-shadow:none;
 background:conic-gradient(from 195deg,
   rgba(255,255,255,.08) 0deg,
   rgba(255,255,255,.30) 35deg,
   rgba(255,255,255,.80) 86deg,
   rgba(255,255,255,.37) 122deg,
   rgba(255,255,255,.06) 170deg,
   rgba(255,255,255,.0) 231deg,
   rgba(255,255,255,.24) 297deg,
   rgba(255,255,255,.08) 360deg);
 -webkit-mask-image:radial-gradient(circle closest-side,transparent 86%,black 96%);
 mask-image:radial-gradient(circle closest-side,transparent 86%,black 96%);
}
/* Square buttons wrap the artwork around rounded square edges, not a circle. */
.cbd-mockup-disc.square{border-radius:11%}
.cbd-mockup-disc.square .cbd-mockup-canvas{border-radius:11%}
.cbd-mockup-disc.square:after{
 -webkit-mask-image:none;mask-image:none;
 background:linear-gradient(135deg,rgba(255,255,255,.33),transparent 38%,rgba(255,255,255,.06) 65%,rgba(255,255,255,.35));
 box-shadow:inset 4px 4px 9px rgba(255,255,255,.4),inset -6px -7px 10px rgba(9,23,42,.13);
}
/* White only on the intentionally empty 'Blank front' view; never an
   exposed white ring surrounding customer-printed artwork. */
.cbd-mockup-disc.blank{
 background:radial-gradient(circle at 33% 24%,#fff 0%,#f7f8f8 60%,#c9cdcf 91%,#a7adb1 100%);
}
.cbd-mockup-disc.back{
 padding:0;background:radial-gradient(circle at 41% 34%,#e4e4e4,#aeb6b9 70%,#7b8185 98%);
}
.cbd-mockup-disc.back:before{
 inset:10px;border-radius:inherit;
 background:radial-gradient(circle at 36% 35%,#f8f8f8,#c6cace 68%,#989fa3 100%);
 box-shadow:inset 3px 5px 13px #fff9,inset -4px -7px 12px #2222221b;
}
.cbd-mockup-disc.back:after{display:none}

/* v0.2.9: Single-step photo editing, with advanced collage tools tucked away. */
.cbd-photo-controls[hidden],.cbd-photo-empty[hidden],.cbd-layer[hidden]{display:none!important}
.cbd-photo-empty{font-size:12px;color:#5a7480;margin:10px 0!important;text-align:center}
.cbd-photo-modes{display:grid;grid-template-columns:1fr 1fr;gap:7px;background:#edf4f5;padding:4px;border-radius:11px;margin:5px 0 10px}
.cbd-photo-modes button{font:inherit;font-size:13px;font-weight:750;min-height:45px;background:transparent;border:1px solid transparent;border-radius:8px;color:#3e6271;cursor:pointer;padding:6px}
.cbd-photo-modes button.active{background:#079eac;color:white;border-color:#079eac;box-shadow:0 2px 8px #0b7a8625}
.cbd-photo-actions{display:flex;gap:9px;justify-content:space-between;flex-wrap:wrap}
.cbd-photo-actions button{flex:1;min-width:115px;min-height:44px}
.cbd-remove-photo{color:#ad394a}
.cbd-photo-position{padding:4px 0 8px}
.cbd-photo-position summary,.cbd-extra-photo summary{cursor:pointer;font-size:12px;font-weight:700;color:#187686;min-height:38px;padding:10px 0}
.cbd-extra-photo{margin-top:12px;border-top:1px solid #e1e9ec}
.cbd-upload-layer{min-height:67px}
.cbd-photo-pan-help{margin:4px 0 8px!important}
.cbd-mockup-disc:has(.cbd-mockup-canvas:active){cursor:grabbing}

/* v0.3.0 — flat, photograph-like product face based on the customer's Zazzle
   reference. Preview-only lighting; no changes to export PNG or press sizing. */
.cbd-gallery-main{
 background:linear-gradient(137deg,#eeece9 0%,#f5f4f1 52%,#eae9e5 100%);
}
.cbd-gallery-main:before{opacity:.035}
.cbd-mockup-disc{
 transform:none;
 box-shadow:5px 12px 14px rgba(35,34,31,.19), 1px 3px 3px rgba(35,34,31,.13),
            0 0 1px rgba(25,30,32,.14);
}
/* Keep lighting predominantly on the thin rolled lip, not across the type. */
.cbd-mockup-disc:before{
 inset:0;
 background:radial-gradient(ellipse 55% 28% at 29% 2%,rgba(255,255,255,.15),transparent 86%);
 box-shadow:inset 2px 3px 4px rgba(255,255,255,.12),
            inset -2px -3px 4px rgba(0,0,0,.10);
}
.cbd-mockup-disc:after{
 background:conic-gradient(from 210deg,
   rgba(255,255,255,.10),rgba(255,255,255,.53) 77deg,
   rgba(255,255,255,.16) 139deg,transparent 220deg,
   rgba(0,0,0,.08) 302deg,rgba(255,255,255,.10) 360deg);
 -webkit-mask-image:radial-gradient(circle closest-side,transparent 94%,black 99%);
 mask-image:radial-gradient(circle closest-side,transparent 94%,black 99%);
}
.cbd-mockup-disc.square:after{
 background:linear-gradient(128deg,rgba(255,255,255,.18),transparent 36%,transparent 78%,rgba(0,0,0,.09));
 box-shadow:inset 2px 2px 4px rgba(255,255,255,.2),inset -3px -3px 4px rgba(9,23,42,.1);
}
/* A product with its own interactive live gallery should not show the theme's
   broken or placeholder WooCommerce gallery ABOVE the designer. Scope to
   the designer product only; unrelated product pages stay untouched. */
body.single-product:has(.cbd-app) .woocommerce-product-gallery{display:none!important}
body.single-product:has(.cbd-app) div.product .summary,
body.single-product:has(.cbd-app) div.product .entry-summary{
 float:none!important;width:100%!important;max-width:min(100%,1100px);
}


/* v0.3.1 — The 2x2 pinback has visually square, not rounded-tile corners.
   Preview-only changes, including gallery front/back/blank, thumbnails,
   live editor and bitmap clipping. Do not affect production PNG dimensions. */
.cbd-app .cbd-mockup-disc.square,
.cbd-app .cbd-mockup-disc.square::before,
.cbd-app .cbd-mockup-disc.square::after,
.cbd-app .cbd-mockup-disc.square .cbd-mockup-canvas{
  border-radius:2px!important;
}
.cbd-app .cbd-product-gallery[data-size='square-200'] .cbd-gallery-mini-canvas,
.cbd-app .cbd-product-gallery[data-size='square-200'] .cbd-gallery-thumbs .cbd-mini-disc,
.cbd-app .cbd-stage.square .cbd-canvas{border-radius:2px!important}
/* Still a thin reflective folded metal edge, without bulbous rounded corners. */
.cbd-app .cbd-mockup-disc.square::before{
  box-shadow:inset 2px 2px 3px rgba(255,255,255,.24),inset -3px -3px 4px rgba(21,31,42,.12);
}
.cbd-app .cbd-mockup-disc.square::after{
  background:linear-gradient(135deg,rgba(255,255,255,.19),transparent 24%,transparent 76%,rgba(9,23,42,.05));
  box-shadow:inset 2px 2px 2px rgba(255,255,255,.23),inset -2px -2px 3px rgba(9,23,42,.12);
}

/* Dedicated sports product, preserving the standard designer. */
.cbd-sports .cbd-tools > :not(.cbd-sports-controls){display:none!important}
.cbd-sports-controls h3{font-size:17px;margin:20px 0 12px;color:#123349}
.cbd-sports-controls h3:first-child{margin-top:0}
.cbd-sports-colors{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.cbd-sports-colors button{background:white;border:2px solid #e0e8ed;border-radius:10px;padding:6px 3px;min-width:0;color:#123349;cursor:pointer;font:inherit;font-size:11px;line-height:1.2}
.cbd-sports-colors button[aria-pressed=true]{border-color:#058997;background:#e8f8f9;box-shadow:0 0 0 1px #058997}
.cbd-sports-colors img{display:block;aspect-ratio:1;width:100%;height:auto;max-width:64px;margin:0 auto 5px;border-radius:50%}
.cbd-sports-colors span{display:block}
.cbd-sports-photo-tools[hidden]{display:none!important}
.cbd-sports .cbd-product-gallery{position:sticky;top:40px;z-index:5}
.cbd-sports .cbd-tools{max-width:none}
.cbd-sports .cbd-grid{display:block;min-width:0}
.cbd-sports .cbd-gallery-main{min-height:0;padding:25px}
.cbd-sports .cbd-mockup-disc{width:min(330px,80%);height:auto;aspect-ratio:1}
.cbd-sports .cbd-production-details{margin-top:16px}
@media(min-width:800px){
 .cbd-sports{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
 .cbd-sports>.cbd-app-head,.cbd-sports>.cbd-approval,.cbd-sports>.cbd-message,.cbd-sports>.cbd-cal-warning{grid-column:1/-1}
}
@media(max-width:799px){
 .cbd-sports .cbd-product-gallery{top:0;margin-bottom:12px;background:#f5f4f1;border-radius:12px;box-shadow:0 4px 12px #15313c12}
 body.admin-bar .cbd-sports .cbd-product-gallery{top:0}
 .cbd-sports .cbd-gallery-main{padding:12px;display:flex;justify-content:center;min-height:0}
 .cbd-sports .cbd-mockup-disc{width:165px!important;max-width:45vw;margin:0!important}
 .cbd-sports .cbd-gallery-thumbs,.cbd-sports .cbd-gallery-note,.cbd-sports .cbd-photo-label{display:none}
 .cbd-sports-colors{gap:5px}
 .cbd-sports .cbd-tools{padding:12px}
}

/* Only the calibrated 2.25-inch size is offered for sports buttons. */
body:has(.cbd-sports) .size-guide-inline,body:has(.cbd-sports) .size-guide-inline + .description{display:none}

/* Keep the gallery in normal flow so it cannot cover artwork approval. */
.cbd-sports .cbd-product-gallery{position:static}
@media(max-width:799px){.cbd-sports .cbd-gallery-main{height:210px}}

@font-face{font-family:CorkseeLobster;src:url('birthday/fonts/Lobster.ttf') format('truetype');font-weight:700;font-display:block}
@font-face{font-family:CorkseeLilita;src:url('birthday/fonts/LilitaOne.ttf') format('truetype');font-weight:700;font-display:block}
.cbd-birthday .cbd-sports-colors{grid-template-columns:repeat(3,minmax(0,1fr))}.cbd-birthday .cbd-sports-colors img{max-width:100px}.cbd-birthday [hidden]{display:none!important}
