:root{--blue:#26348f;--pink:#e84372;--ink:#172033;--muted:#697386;--line:#dfe3ec;--bg:#eef1f6;--green:#14845c;--amber:#b56b00;--sheet-ratio:.7071;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg);overscroll-behavior:none}button,input,select,textarea{font:inherit}.app{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.topbar{height:68px;flex:none;background:var(--blue);color:#fff;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:8px 18px;box-shadow:0 2px 10px #1a235050;z-index:5}.brand{display:flex;align-items:center;gap:9px}.brand>div:last-child{display:flex;flex-direction:column;line-height:1}.brand strong{font-size:17px}.brand span{font-size:9px;letter-spacing:2px;margin-top:4px}
    .cat{
      width:48px;
      height:48px;
      display:flex;
      align-items:center;
      justify-content:center;
      flex-shrink:0;
      text-decoration:none;
      cursor:pointer;
    }
    
    .cat img{
      display:block;
      width:100%;
      height:100%;
      object-fit:contain;
    }
    .title{display:flex;flex-direction:column;text-align:center}.title strong{font-size:15px}.title>span{font-size:12px;opacity:.75;margin-top:2px}.finish{justify-self:end;background:var(--pink);border:0;border-radius:10px;color:#fff;font-weight:800;padding:11px 17px;cursor:pointer}.settings{height:56px;flex:none;display:flex;align-items:center;justify-content:center;gap:14px;background:#fff;border-bottom:1px solid var(--line);padding:8px 16px}.settings label{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:7px}.settings select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 28px 7px 10px;color:var(--ink);font-weight:700}.history{display:flex;gap:5px}.history button,.inspector button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 11px;cursor:pointer}.workspace{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr) 300px}.canvas-scroll{min-height:0;overflow:auto;display:grid;place-items:center;padding:28px}.sheet-wrap{text-align:center}.sheet{position:relative;width:min(52vw,480px);aspect-ratio:var(--sheet-ratio);background:#fff;box-shadow:0 10px 32px #27314d2c,0 0 0 1px #cbd1dd;overflow:hidden;touch-action:none}.safe-area{position:absolute;inset:1.43%;border:1px dashed #e8437280;pointer-events:none}.sheet-size{font-size:12px;color:var(--muted);margin-top:12px}.empty{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#8790a3;gap:5px;pointer-events:none}.empty .plus{width:46px;height:46px;border-radius:50%;background:#f2f4fa;color:var(--blue);display:grid;place-items:center;font-size:30px;margin-bottom:5px}.empty strong{color:#4f586b}.empty span{font-size:13px}.design-item{position:absolute;user-select:none;transform-origin:center;cursor:move;touch-action:none}.design-item img{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none}.design-item.text-item{display:grid;place-items:center;font-weight:700;line-height:1.05;white-space:pre-wrap;text-align:center;overflow:hidden}.design-item.pdf-item{background:#f9edf0;border:1px solid #e9acbd;display:grid;place-items:center;color:#b32853;text-align:center;padding:5px;font-weight:800}.design-item.selected{outline:2px solid #21b8b0;outline-offset:2px}.resize-handle{display:none;position:absolute;width:18px;height:18px;border:2px solid #21b8b0;border-radius:50%;background:#fff;right:-11px;bottom:-11px;cursor:nwse-resize}.design-item.selected .resize-handle{display:block}.inspector{background:#fff;border-left:1px solid var(--line);padding:20px;overflow:auto}.inspector-empty{height:100%;display:flex;flex-direction:column;justify-content:center;text-align:center;color:var(--muted);gap:6px;font-size:14px}.inspector-content.hidden{display:none}.inspector-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:18px}.inspector-head>div{display:flex;flex-direction:column;min-width:0}.inspector-head strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quality{font-size:12px;margin-top:5px;color:var(--green)}.quality.warn{color:var(--amber)}.fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fields label,.dialog-title+label,dialog>label{font-size:12px;color:var(--muted)}.fields label>div{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;margin-top:5px;padding-right:8px}.fields input{min-width:0;width:100%;border:0;padding:9px;background:transparent;color:var(--ink);font-weight:700}.fields span{font-size:12px}.range-label{display:grid;grid-template-columns:1fr auto;margin-top:18px;font-size:13px;color:var(--muted)}.range-label input{grid-column:1/-1;width:100%;accent-color:var(--blue);margin-top:10px}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}.quick-actions .danger{color:#ba264c}.dock{height:72px;flex:none;background:#fff;border-top:1px solid var(--line);display:flex;justify-content:center;gap:6px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));z-index:5}.dock button{min-width:76px;border:0;background:transparent;color:#4c5568;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:12px;cursor:pointer}.dock span{font-size:21px;line-height:1}.dock .primary-tool{background:var(--blue);color:#fff;font-weight:800}.dock button:disabled{opacity:.35}dialog{border:0;border-radius:18px;box-shadow:0 24px 80px #111a3b66;width:min(92vw,430px);padding:22px;color:var(--ink)}dialog::backdrop{background:#18204499;backdrop-filter:blur(3px)}dialog form{display:flex;flex-direction:column;gap:16px}.dialog-title,.check-head{display:flex;align-items:center;justify-content:space-between}.dialog-title button,.check-head>button{border:0;background:transparent;font-size:24px;color:var(--muted);cursor:pointer}.dialog-title+label{display:flex;flex-direction:column;gap:7px}textarea{min-height:100px;resize:vertical;border:1px solid var(--line);border-radius:10px;padding:12px;font-size:16px}dialog select{border:1px solid var(--line);border-radius:9px;padding:10px;margin-left:8px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.dialog-actions button{border:1px solid var(--line);background:#fff;padding:11px 16px;border-radius:9px;font-weight:700;cursor:pointer}.dialog-actions .confirm{background:var(--pink);color:#fff;border-color:var(--pink)}.check-head{justify-content:flex-start;gap:12px}.check-head>div:nth-child(2){display:flex;flex-direction:column}.check-head span{font-size:13px;color:var(--muted);margin-top:3px}.check-head>button{margin-left:auto}.check-icon{width:40px;height:40px;border-radius:50%;background:#e5f6ef;color:var(--green);display:grid;place-items:center;font-weight:900;font-size:21px}.preview-mini{background:var(--bg);border-radius:12px;margin:18px 0;padding:15px;display:grid;place-items:center;height:220px}.preview-mini canvas{height:190px;max-width:100%;box-shadow:0 3px 12px #1b25452c}.check-list{border:1px solid var(--line);border-radius:11px;overflow:hidden}.check-list div{display:flex;justify-content:space-between;padding:11px 13px;border-bottom:1px solid var(--line);font-size:13px}.check-list div:last-child{border-bottom:0}.check-list span{color:var(--muted)}.warnings{font-size:13px;color:var(--amber);margin-top:10px}.toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%,20px);background:#172033;color:#fff;padding:11px 16px;border-radius:9px;opacity:0;pointer-events:none;transition:.2s;z-index:20;font-size:14px}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:760px){.topbar{grid-template-columns:auto 1fr auto;height:62px;padding:7px 10px}.brand>div:last-child{display:none}.cat{width:44px;height:44px}.title strong{font-size:14px}.title>span{font-size:11px}.finish{padding:9px 12px}.settings{height:54px;gap:8px;padding:7px 9px}.settings label{font-size:0;gap:0}.settings select{font-size:13px;padding:7px 23px 7px 8px}.workspace{display:block;position:relative}.canvas-scroll{height:100%;padding:20px 16px 26px;align-items:start}.sheet{width:min(82vw,390px);max-height:calc(100dvh - 238px)}.inspector{position:absolute;left:8px;right:8px;bottom:8px;border:0;border-radius:15px;box-shadow:0 8px 30px #17203335;padding:14px;max-height:230px;transform:translateY(calc(100% + 18px));transition:.22s;z-index:4}.inspector.open{transform:translateY(0)}.inspector-empty{display:none}.inspector-head{margin-bottom:10px}.fields{max-width:260px}.range-label{margin-top:10px}.quick-actions{display:none}.dock{justify-content:space-around;height:70px}.dock button{min-width:58px;font-size:11px}.dock span{font-size:19px}}
@media(max-width:390px){.dock button{min-width:52px}.settings{justify-content:space-between}.history button{padding:7px 9px}.sheet{width:79vw}}
.empty{border:0;background:transparent;width:100%;font:inherit;cursor:pointer;z-index:2}.empty:hover .plus,.empty:focus-visible .plus{background:#e5e8f5;transform:scale(1.05)}.empty:focus-visible{outline:3px solid #26348f55;outline-offset:-4px}.size-control{padding:12px 10px;margin:14px -10px 0;background:#f5f7fb;border-radius:10px}.size-control input{height:26px}.color-control{display:flex;align-items:center;justify-content:space-between;margin-top:14px;font-size:13px;color:var(--muted)}.color-control.hidden{display:none}.color-control input,.text-options input[type=color]{width:48px;height:36px;padding:2px;border:1px solid var(--line);border-radius:8px;background:#fff}.text-options{display:flex;align-items:center;justify-content:space-between;gap:12px}.text-options label{font-size:12px;color:var(--muted);display:flex;align-items:center}.design-item{will-change:left,top,width,height}.design-item.selected{cursor:grab}.design-item.dragging{cursor:grabbing}
@media(max-width:760px){.inspector{max-height:305px}.size-control{margin-top:10px;padding:8px}.color-control{margin-top:8px}}
.sheet{background:#e7eaef}.safe-area{background:transparent}.empty{color:#697386}.sheet-size{font-weight:600}
.text-edit{display:grid;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.text-edit.hidden{display:none}.text-edit label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}.text-edit textarea{min-height:62px;padding:9px;font-size:14px}.text-edit select{border:1px solid var(--line);border-radius:8px;background:#fff;padding:9px;color:var(--ink)}
@media(max-width:760px){.inspector:has(.text-edit:not(.hidden)){max-height:420px}.text-edit{grid-template-columns:1fr 1fr}.text-edit textarea{min-height:58px}}
@font-face{font-family:'Abril Fatface';src:url('fonts/abril-fatface-latin-400-normal.woff2')}@font-face{font-family:'Amatic SC';src:url('fonts/amatic-sc-latin-400-normal.woff2')}@font-face{font-family:'Anton';src:url('fonts/anton-latin-400-normal.woff2')}@font-face{font-family:'Bangers';src:url('fonts/bangers-latin-400-normal.woff2')}@font-face{font-family:'Bebas Neue';src:url('fonts/bebas-neue-latin-400-normal.woff2')}@font-face{font-family:'Bree Serif';src:url('fonts/bree-serif-latin-400-normal.woff2')}@font-face{font-family:'Caveat';src:url('fonts/caveat-latin-400-normal.woff2')}@font-face{font-family:'Chakra Petch';src:url('fonts/chakra-petch-latin-400-normal.woff2')}@font-face{font-family:'Cinzel';src:url('fonts/cinzel-latin-400-normal.woff2')}@font-face{font-family:'Dancing Script';src:url('fonts/dancing-script-latin-400-normal.woff2')}@font-face{font-family:'Great Vibes';src:url('fonts/great-vibes-latin-400-normal.woff2')}@font-face{font-family:'Indie Flower';src:url('fonts/indie-flower-latin-400-normal.woff2')}@font-face{font-family:'Lobster';src:url('fonts/lobster-latin-400-normal.woff2')}@font-face{font-family:'Merriweather';src:url('fonts/merriweather-latin-400-normal.woff2')}@font-face{font-family:'Montserrat';src:url('fonts/montserrat-latin-400-normal.woff2')}@font-face{font-family:'Open Sans';src:url('fonts/open-sans-latin-400-normal.woff2')}@font-face{font-family:'Oswald';src:url('fonts/oswald-latin-400-normal.woff2')}@font-face{font-family:'Pacifico';src:url('fonts/pacifico-latin-400-normal.woff2')}@font-face{font-family:'Permanent Marker';src:url('fonts/permanent-marker-latin-400-normal.woff2')}@font-face{font-family:'Playfair Display';src:url('fonts/playfair-display-latin-400-normal.woff2')}@font-face{font-family:'Poppins';src:url('fonts/poppins-latin-400-normal.woff2')}@font-face{font-family:'Righteous';src:url('fonts/righteous-latin-400-normal.woff2')}@font-face{font-family:'Roboto';src:url('fonts/roboto-latin-400-normal.woff2')}
.font-picker{width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:7px 10px;display:flex;align-items:center;justify-content:space-between;color:var(--ink);cursor:pointer}.font-picker span{font-size:18px}.font-picker small{font:600 11px Inter,sans-serif;color:var(--blue)}.font-dialog{width:min(92vw,480px);padding:18px}.font-dialog .dialog-title>div{display:flex;flex-direction:column}.font-dialog .dialog-title span{font-size:12px;color:var(--muted);margin-top:3px}.font-search{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 13px;margin:14px 0;font-size:15px}.font-list{height:min(58vh,520px);overflow:auto;border:1px solid var(--line);border-radius:11px}.font-option{width:100%;min-height:52px;border:0;border-bottom:1px solid #eceef3;background:#fff;text-align:left;padding:8px 14px;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.font-option:last-child{border-bottom:0}.font-option:hover,.font-option:focus-visible{background:#f1f3fa}.font-option .sample{font-size:23px;color:var(--ink)}.font-option small{font:500 11px Inter,sans-serif;color:var(--muted)}
.font-picker span,.font-option .sample{font-weight:700}
.mobile-panel-toggle{display:none}
@media(max-width:760px){.inspector.mobile-collapsed{max-height:72px;overflow:hidden}.inspector.mobile-collapsed .inspector-content{height:44px;overflow:hidden}.inspector.mobile-collapsed .inspector-head{margin:0;align-items:center}.mobile-panel-toggle{display:block;margin-left:auto;color:var(--blue);font-weight:800}.inspector-head>button:last-child{margin-left:5px}.workspace:has(.inspector.open) .canvas-scroll{padding-bottom:115px}.inspector:not(.mobile-collapsed) .mobile-panel-toggle::after{content:' ▲';font-size:10px}.inspector.mobile-collapsed .mobile-panel-toggle::after{content:' ▼';font-size:10px}}
.format-lock{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#f5f7fb;border-radius:8px;padding:7px 11px}.format-lock span{font-size:12px;color:var(--muted)}.format-lock strong{color:var(--blue)}
@media(max-width:760px){.format-lock span{display:none}.format-lock{padding:7px 14px}}
.order-quantity{align-items:center}.order-quantity label{color:var(--muted)}.order-quantity input{width:76px;border:1px solid var(--line);border-radius:8px;padding:7px 9px;text-align:center;font-weight:800}.dialog-actions .confirm:disabled{opacity:.55;cursor:wait}
.background-dialog{width:min(94vw,540px);padding:22px}.background-head{display:flex;align-items:center;gap:12px}.background-head>div:last-child{display:flex;flex-direction:column;gap:3px}.background-head span{font-size:13px;color:var(--muted)}.background-alert{width:42px;height:42px;flex:0 0 42px;border-radius:50%;display:grid;place-items:center;background:#fff0d8;color:#a65d00;font-size:24px;font-weight:900}.background-preview{height:min(42vh,300px);margin:18px 0 14px;border-radius:12px;display:grid;place-items:center;overflow:hidden;background-color:#353942;background-image:linear-gradient(45deg,#4b505a 25%,transparent 25%),linear-gradient(-45deg,#4b505a 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#4b505a 75%),linear-gradient(-45deg,transparent 75%,#4b505a 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0}.background-preview canvas{display:block;max-width:100%;max-height:100%;box-shadow:0 3px 14px #0005}.background-dialog p{font-size:14px;line-height:1.45;margin:0 0 12px}.background-note{font-size:12px;line-height:1.4;color:var(--muted);background:#f5f7fb;border-radius:9px;padding:10px 12px}.background-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.background-actions button{border:1px solid var(--line);background:#fff;padding:12px 10px;border-radius:9px;font-weight:750;cursor:pointer}.background-actions .confirm{background:var(--pink);border-color:var(--pink);color:#fff}.background-actions button:disabled{opacity:.55;cursor:wait}
@media(max-width:560px){.background-dialog{padding:17px}.background-preview{height:240px}.background-actions{grid-template-columns:1fr}.background-actions .confirm{grid-row:1}.background-dialog p{font-size:13px}}
