*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{-webkit-font-smoothing:antialiased;font-family:DM Sans,Segoe UI,system-ui,sans-serif;line-height:1.4}button,input{font:inherit}.label-harbor{--bg:#f6f1fb;--bg-wash:#e2d0f0;--ink:#2b2438;--accent:#6f4f9a;--accent-soft:#c4b0de;--accent-mid:#9a7bb8;--muted:#6b6280;box-sizing:border-box;background:radial-gradient(ellipse 70% 80% at 88% 55%, #c4b0de8c 0%, transparent 55%), linear-gradient(145deg, var(--bg) 0%, var(--bg-wash) 72%, #d8c4ec 100%);width:3.5in;height:2.25in;color:var(--ink);border-radius:2px;padding:.2in;font-family:DM Sans,Segoe UI,system-ui,sans-serif;position:relative;overflow:hidden}.label-harbor:before{content:"";background-image:radial-gradient(circle, var(--accent-soft) 1px, transparent 1.2px);opacity:.28;pointer-events:none;background-position:.08in .08in;background-size:.22in .22in;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000 0% 48%,#000 78%);mask-image:linear-gradient(90deg,#0000 0% 48%,#000 78%)}.label-harbor__frame{border:1.5px dashed var(--accent-soft);pointer-events:none;opacity:.85;border-radius:3px;position:absolute;inset:.1in}.label-harbor__content{z-index:1;flex-direction:column;justify-content:center;min-width:0;max-width:2.15in;height:100%;display:flex;position:relative}.label-harbor .brand{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);overflow-wrap:anywhere;margin:0 0 .06in;font-size:9.5pt;font-weight:700;line-height:1.2}.label-harbor .rule{background:linear-gradient(90deg, var(--accent) 0%, var(--accent-soft) 100%);border-radius:1px;width:.95in;height:2px;margin-bottom:.1in}.label-harbor .product{letter-spacing:-.01em;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;margin:0 0 .07in;font-family:Fraunces,Iowan Old Style,Georgia,serif;font-size:22pt;font-weight:700;line-height:1.12}.label-harbor .scent{color:var(--muted);overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0 0 .12in;font-size:10.5pt;line-height:1.35;display:-webkit-box;overflow:hidden}.label-harbor .net{color:var(--accent);letter-spacing:.02em;margin:auto 0 0;padding-top:.06in;font-size:9.5pt;font-weight:700}.label-harbor .sprig{z-index:1;pointer-events:none;filter:drop-shadow(0 2px 4px #6f4f9a1f);width:.92in;height:auto;position:absolute;top:50%;right:.12in;transform:translateY(-50%)}.label-harbor .sprig-soft{opacity:.35;z-index:0;pointer-events:none;width:.55in;height:auto;position:absolute;bottom:.08in;right:.02in;transform:rotate(18deg)}.label-stripe{--bg:#fff8f0;--stripe-a:#1b4b5a;--stripe-b:#3d9b8f;--ink:#1a2a32;--muted:#4a6570;box-sizing:border-box;background:var(--bg);width:3.5in;height:2.25in;color:var(--ink);border-radius:2px;font-family:DM Sans,Segoe UI,system-ui,sans-serif;position:relative;overflow:hidden}.label-stripe__bands{background:repeating-linear-gradient(0deg, var(--stripe-a) 0 8px, var(--stripe-b) 8px 16px);position:absolute;inset:0}.label-stripe__bands:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0%,#fff8f026 40% 60%,#0000 100%);position:absolute;inset:0}.label-stripe__panel{z-index:1;background:var(--bg);box-sizing:border-box;border:1px solid #1b4b5a1f;border-radius:3px;flex-direction:column;justify-content:center;height:calc(100% - .52in);margin:.26in .32in;padding:.16in .2in;display:flex;position:relative;box-shadow:0 2px 8px #1a2a321f}.label-stripe .brand{letter-spacing:.16em;text-transform:uppercase;color:var(--stripe-a);overflow-wrap:anywhere;margin:0 0 .06in;font-size:9pt;font-weight:700}.label-stripe .product{letter-spacing:-.01em;overflow-wrap:anywhere;margin:0 0 .06in;font-family:Fraunces,Georgia,serif;font-size:21pt;font-weight:700;line-height:1.12}.label-stripe .scent{color:var(--muted);overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0 0 .1in;font-size:10.5pt;line-height:1.35;display:-webkit-box;overflow:hidden}.label-stripe .net{color:var(--stripe-b);letter-spacing:.02em;margin:0;font-size:9.5pt;font-weight:700}.label-apothecary{--bg:#f7f1e6;--frame:#3d5a45;--ink:#2c2418;--accent:#8b6914;--muted:#5c5346;box-sizing:border-box;background:radial-gradient(ellipse 80% 60% at 50% 100%, #3d5a4514 0%, transparent 55%), var(--bg);width:3.5in;height:2.25in;color:var(--ink);text-align:center;border:2.5px solid var(--frame);border-radius:2px;flex-direction:column;justify-content:center;align-items:center;padding:.28in .32in;font-family:DM Sans,system-ui,sans-serif;display:flex;position:relative}.label-apothecary:before{content:"";pointer-events:none;border:1px solid #3d5a4573;position:absolute;inset:.08in}.label-apothecary .corner{width:.38in;height:.38in;color:var(--frame);z-index:1;position:absolute}.label-apothecary .corner.tl{top:.06in;left:.06in}.label-apothecary .corner.tr{top:.06in;right:.06in;transform:scaleX(-1)}.label-apothecary .corner.bl{bottom:.06in;left:.06in;transform:scaleY(-1)}.label-apothecary .corner.br{bottom:.06in;right:.06in;transform:scale(-1)}.label-apothecary .brand.banner{z-index:1;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);border:1.5px solid var(--accent);background:var(--bg);overflow-wrap:anywhere;max-width:100%;margin:.04in 0 .12in;padding:.045in .14in;font-size:8.5pt;font-weight:700;display:inline-block;position:relative}.label-apothecary .product{z-index:1;overflow-wrap:anywhere;max-width:2.6in;margin:0 0 .07in;font-family:Fraunces,Georgia,serif;font-size:21pt;font-weight:700;line-height:1.15;position:relative}.label-apothecary .scent{z-index:1;color:var(--muted);overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;max-width:2.6in;margin:0 0 .1in;font-size:10.5pt;line-height:1.35;display:-webkit-box;position:relative;overflow:hidden}.label-apothecary .net{z-index:1;color:var(--frame);letter-spacing:.04em;margin:0;font-size:9.5pt;font-weight:700;position:relative}.label-bold-block{box-sizing:border-box;border-radius:2px;grid-template-columns:1.2in 1fr;width:3.5in;height:2.25in;font-family:DM Sans,system-ui,sans-serif;display:grid;overflow:hidden}.label-bold-block .block-left{color:#fff8f0;background:linear-gradient(165deg,#f07868 0%,#e86a5b 55%,#d45548 100%);flex-direction:column;justify-content:space-between;padding:.22in .14in;display:flex;position:relative}.label-bold-block .block-left:after{content:"";z-index:2;background:#b8e0d2;border-radius:2px;width:.24in;height:.24in;position:absolute;top:50%;right:-.12in;transform:translateY(-50%)rotate(45deg)}.label-bold-block .block-right{color:#1f2a2e;background:radial-gradient(circle at 90% 15%,#ffffff59 0%,#0000 40%),#b8e0d2;flex-direction:column;justify-content:center;min-width:0;padding:.26in .24in .26in .28in;display:flex}.label-bold-block .brand{letter-spacing:.12em;text-transform:uppercase;overflow-wrap:anywhere;z-index:1;margin:0;font-size:8.5pt;font-weight:800;line-height:1.25;position:relative}.label-bold-block .net{overflow-wrap:anywhere;z-index:1;opacity:.95;margin:0;font-size:8.5pt;font-weight:700;line-height:1.3;position:relative}.label-bold-block .chevron{opacity:.45;z-index:0;width:.32in;height:.32in;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.label-bold-block .product{letter-spacing:-.025em;overflow-wrap:anywhere;margin:0 0 .08in;font-size:20pt;font-weight:800;line-height:1.1}.label-bold-block .scent{opacity:.88;overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:10.5pt;line-height:1.35;display:-webkit-box;overflow:hidden}.app{color:#2b2438;background:#f6f3fb;flex-direction:column;min-height:100dvh;display:flex;overflow-x:hidden}.app-header{padding:.85rem 1rem;padding-top:max(.85rem, env(safe-area-inset-top));padding-left:max(1rem, env(safe-area-inset-left));padding-right:max(1rem, env(safe-area-inset-right));z-index:20;background:#fff;border-bottom:1px solid #e4d5f2;justify-content:space-between;align-items:center;gap:.75rem 1rem;display:flex;position:sticky;top:0}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:#7b5ea7;margin:0;font-size:.75rem;font-weight:600}.app-header h1{margin:.15rem 0 0;font-family:Fraunces,Georgia,serif;font-size:clamp(1.05rem,2.5vw,1.25rem);font-weight:600}.btn-primary{color:#fff;cursor:pointer;touch-action:manipulation;background:#7b5ea7;border:none;border-radius:999px;flex-shrink:0;min-width:44px;min-height:44px;padding:.65rem 1.15rem;font-family:inherit;font-size:.95rem;font-weight:600}.btn-primary:disabled{opacity:.65;cursor:wait}.btn-primary:hover:not(:disabled){background:#684d94}.workspace{padding:.85rem 1rem 1.25rem;padding-bottom:max(1.25rem, env(safe-area-inset-bottom));padding-left:max(1rem, env(safe-area-inset-left));padding-right:max(1rem, env(safe-area-inset-right));box-sizing:border-box;flex:1;grid-template-columns:1fr;align-items:start;gap:.85rem;width:100%;max-width:1100px;margin:0 auto;display:grid}.preview{order:1}.editor{order:2}.panel{box-sizing:border-box;background:#fff;border:1px solid #e8dff3;border-radius:16px;width:100%;min-width:0;padding:1rem 1.1rem 1.25rem;box-shadow:0 8px 24px #2b24380a}.editor h2,.preview-toolbar h2{margin:0 0 .85rem;font-size:.95rem;font-weight:700}.editor label{color:#6b6280;flex-direction:column;gap:.35rem;margin-bottom:.75rem;font-size:.8rem;font-weight:600;display:flex}.editor input{color:#2b2438;box-sizing:border-box;background:#fbf9fe;border:1px solid #dccfe8;border-radius:10px;width:100%;min-height:44px;padding:.7rem .75rem;font-family:inherit;font-size:16px}.editor input:focus{border-color:#7b5ea7;outline:2px solid #c4b0de}.templates{border:none;margin:.5rem 0 0;padding:0}.templates legend{color:#6b6280;margin-bottom:.5rem;font-size:.8rem;font-weight:600}.template-grid{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.template-chip{cursor:pointer;color:#2b2438;touch-action:manipulation;background:#fbf9fe;border:1px solid #dccfe8;border-radius:10px;min-height:44px;padding:.65rem .4rem;font-family:inherit;font-size:.8rem;font-weight:600}.template-chip.active{color:#7b5ea7;background:#f3eef8;border-color:#7b5ea7;box-shadow:inset 0 0 0 1px #7b5ea7}.preview-toolbar{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.hint{color:#6b6280;font-size:.75rem}.preview-stage{box-sizing:border-box;background-color:#f3eef8;background-image:linear-gradient(45deg,#eee8f5 25%,#0000 25%),linear-gradient(-45deg,#eee8f5 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#eee8f5 75%),linear-gradient(-45deg,#0000 75%,#eee8f5 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:16px 16px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;border-radius:12px;justify-content:center;align-items:center;width:100%;min-height:200px;padding:1rem .5rem;display:flex;overflow:hidden;container:preview/inline-size}.preview-fit{transform-origin:50%;justify-content:center;align-items:center;width:max-content;max-width:100%;display:flex}@container preview (width<=360px){.preview-fit{transform:scale(.88)}.preview-stage{min-height:190px}}@container preview (width<=320px){.preview-fit{transform:scale(.78)}}@container preview (width<=280px){.preview-fit{transform:scale(.7)}}.label-artboard{flex-shrink:0;box-shadow:0 12px 32px #2b24381f}@media (width>=600px){.app-header{padding:1rem 1.25rem}.workspace{gap:1rem;padding:1rem 1.25rem 1.5rem}.preview-stage{min-height:260px;padding:1.25rem .75rem}}@media (width>=900px){.workspace{grid-template-columns:minmax(260px,340px) minmax(0,1fr);max-width:none}.editor{order:0;position:sticky;top:4.5rem}.preview{order:0}.preview-fit{transform:none}.preview-stage{min-height:280px;overflow:auto}}@media (width<=899px){.app-header{flex-wrap:wrap}.app-header .btn-primary{width:100%}}
