.ed{--cream:var(--k-cream);--ink:var(--k-ink);--muted:var(--k-ink2);--warm:var(--k-coral);--ok:var(--k-green);--bad:var(--k-red);--card:var(--k-white);--line:#e5d8c4;font-family:var(--k-font);color:var(--ink)}.ed,.ed *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}.ed #app{height:100dvh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);display:grid;position:fixed;inset:0}.ed #top{--k-lip:4px;align-items:center;gap:3px;height:52px;padding:3px 5px 5px;display:flex}.ed .btn{touch-action:manipulation;font-family:var(--k-font)}.ed .btn:not(.k-btn){border:var(--k-olw) solid var(--k-ol);border-radius:var(--k-r);min-height:44px;box-shadow:0 var(--k-lip) 0 var(--k-ol);background:var(--k-white);color:var(--k-ink);font:800 16px/1.15 var(--k-font);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:6px;padding:0 16px;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.ed .btn:not(.k-btn):active{box-shadow:0 calc(var(--k-lip) - 3px) 0 var(--k-ol);transform:translateY(3px)}.ed .btn:disabled{filter:grayscale(.7);opacity:.4;cursor:default}.ed #top .btn{border-radius:50%;flex:none;width:42px;min-width:42px;height:42px;min-height:42px;padding:0;font-size:20px;line-height:1}.ed .btn.wide{text-align:left;justify-content:flex-start;width:100%;height:auto;min-height:46px;margin:7px 0;padding:8px 14px;font-size:15.5px;line-height:1.2;display:flex}.ed .btn.wide.primary,.ed .pol-actions .btn.wide{text-align:center;justify-content:center}.ed .btn.on{background:var(--k-butter);color:var(--k-ink)}.ed .btn.primary{background:var(--k-green);color:#fff;text-shadow:0 2px #5b3a2973;text-align:center}.ed .btn.small{min-height:40px;color:var(--k-ink2);box-shadow:none;border-style:dashed;border-width:2px;border-color:var(--k-mute);background:0 0;margin-bottom:4px;font-size:13.5px}.ed a.btn{text-decoration:none}.ed #order{background:var(--k-cream);min-width:0;height:44px;color:var(--k-ink);text-align:left;font:700 13.5px/1.1 var(--k-font);cursor:pointer;touch-action:manipulation;flex:1;align-items:center;gap:7px;padding:0 9px 0 5px;transition:transform 80ms,box-shadow 80ms;display:flex;overflow:hidden}.ed #order:active{box-shadow:0 1px 0 var(--k-ol);transform:translateY(3px)}.ed #order .ordBadge{border:2px solid var(--k-ol);background:var(--k-peach);text-align:center;min-width:36px;font:800 13.5px/22px var(--k-font);border-radius:10px;flex:none;padding:0 7px}.ed #order .ordTxt{-webkit-line-clamp:1;overflow-wrap:anywhere;-webkit-box-orient:vertical;flex:1;min-width:0;font-size:14.5px;display:-webkit-box;overflow:hidden}.ed #order.done{background:var(--k-green);color:#fff;text-shadow:0 2px #5b3a2966}.ed #order.done .ordBadge{background:var(--k-butter);color:var(--k-ink);text-shadow:none}.ed #stageWrap{min-height:0;position:relative;overflow:hidden}.ed #recall{z-index:4;border:2.5px solid var(--k-ol);background:var(--k-white);height:32px;color:var(--k-ink);font:700 13px/1 var(--k-font);box-shadow:0 3px 0 var(--k-ol);touch-action:manipulation;border-radius:16px;align-items:center;gap:6px;padding:0 13px 0 9px;display:flex;position:absolute;top:6px;left:8px}.ed #recall[hidden]{display:none}.ed #recall:after{content:"";position:absolute;inset:-6px -4px}.ed #recall:before{content:"";background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M2.5 2h11A1.5 1.5 0 0 1 15 3.5v6a1.5 1.5 0 0 1-1.5 1.5H8.5L5 14.5V11H2.5A1.5 1.5 0 0 1 1 9.5v-6A1.5 1.5 0 0 1 2.5 2z' fill='%23ff8f6b' stroke='%235b3a29' stroke-width='1.2'/></svg>") 50%/contain no-repeat;flex:none;width:16px;height:16px}.ed #recall:active{background:var(--k-butter)}.ed #stage{touch-action:none;width:100%;height:100%;position:absolute;inset:0}.ed #tools{--k-olw:2.5px;--k-lip:4px;gap:5px;display:none;position:absolute;bottom:12px;left:8px;right:8px}.ed #tools.show{display:flex}.ed #tools .btn{text-align:center;text-wrap:balance;border-radius:15px;flex-direction:column;flex:1;min-width:0;height:48px;padding:0 2px;font-size:13.5px;line-height:1.05}.ed #tools .btn span{line-height:1.05;display:block}.ed #tools .btn .sub{color:var(--k-ink2);font-size:13px;font-weight:600}.ed #paperTools{--k-lip:4px;align-items:center;gap:6px;display:none;position:absolute;bottom:12px;left:8px;right:8px}.ed #paperTools.show{display:flex}.ed #paperTools .hint,.ed #tieHint .hint{border:var(--k-olw) solid var(--k-ol);min-width:0;box-shadow:0 4px 0 var(--k-ol);color:var(--k-ink);font:700 13px/1.25 var(--k-font);background:#fff;border-radius:16px;flex:1;padding:7px 11px}.ed #paperTools .btn{text-align:center;flex:none;max-width:46%;height:48px;padding:0 12px;font-size:13.5px;line-height:1.1}.ed #paperTools .btn.on{background:var(--k-green);color:#fff;text-shadow:0 2px #5b3a2973}.ed #trayBox{background:var(--k-peach);border:var(--k-olw) solid var(--k-ol);border-bottom:0;border-radius:26px 26px 0 0;min-width:0}.ed #trayTabs{scrollbar-width:none;gap:6px;padding:6px 10px 5px;display:flex;overflow-x:auto}.ed #trayTabs::-webkit-scrollbar{display:none}.ed #trayTabs .tab{white-space:nowrap;font-family:var(--k-font);touch-action:pan-x;position:relative}.ed #trayTabs .tab:before{content:"";position:absolute;inset:-6px -3px -5px}.ed #tray{scrollbar-width:none;touch-action:pan-x;background:0 0;gap:14px;padding:4px 10px 6px;display:flex;overflow-x:auto}.ed #tray,.ed #trayTabs{overscroll-behavior-x:contain;-webkit-user-select:none;user-select:none;cursor:grab}.ed #trayTabs{touch-action:pan-x}.ed #tray.dragging,.ed #trayTabs.dragging{cursor:grabbing}.ed .grp{flex-direction:column;flex:none;gap:2px;display:flex}.ed .grp[hidden]{display:none}.ed .grpName{width:0;min-width:100%;font:800 14px/17px var(--k-font);color:var(--k-ink2);white-space:nowrap;text-overflow:ellipsis;padding:0 4px;overflow:hidden}.ed .grpItems{gap:8px;padding-top:1px;display:flex}.ed #tray::-webkit-scrollbar{display:none}.ed .item{white-space:nowrap;text-align:center;min-width:72px;font:700 13px/1.15 var(--k-font);touch-action:manipulation;flex-direction:column;flex:none;align-items:center;gap:1px;padding:3px 6px 5px;transition:transform .12s,background-color .12s;display:flex}.ed .item canvas{width:42px;height:42px}.ed .item.k-sel,.ed .item.on{background:var(--k-butter);transform:translateY(-3px)rotate(-1.5deg)}.ed .grpItems.chips{grid-template-columns:auto auto;gap:6px;display:grid}.ed .chip{border:2.5px solid var(--k-ol);background:var(--k-white);min-width:56px;height:35px;color:var(--k-ink);font:700 13px var(--k-font);white-space:nowrap;touch-action:manipulation;border-radius:14px;padding:0 11px}.ed #tray .chip.on{background:var(--k-butter)}.ed #tray .chip.now{box-shadow:inset 0 0 0 2px #ff8f6b99}.ed .grp.off .grpItems{opacity:.38;pointer-events:none}.ed .sheet{z-index:5;max-height:calc(100% - 26px);padding:10px 14px 12px;display:none;position:absolute;top:10px;left:10px;right:10px;overflow:auto}.ed .sheet.show{animation:.28s cubic-bezier(.3,1.4,.6,1) both k-pop;display:block}.ed .sheet.bottom{max-height:40%;inset:auto 6px 6px}.ed .sheet.bottom .row{min-height:44px;padding:6px 8px}.ed .sheetHead{justify-content:space-between;align-items:center;gap:8px;display:flex}.ed .sheetHead .btn{flex:none;min-height:44px;padding:0 16px}.ed .row{font:600 15px/1.25 var(--k-font);border-radius:14px;align-items:center;gap:8px;min-height:44px;padding:10px 8px;display:flex}.ed .row:active{background:#fff0c4}.ed .row.active{background:var(--k-butter)}.ed .num{width:24px;height:24px;font:800 13px/1 var(--k-font);border:2px solid var(--k-ol);background:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.ed .row.active .num{background:var(--k-coral);color:#fff}.ed .chk.ok:before{content:"✓ ";color:var(--k-green);font-weight:800}.ed .chk.no:before{content:"✗ ";color:var(--k-red);font-weight:800}.ed .detail{color:var(--k-ink2);text-align:right;margin-left:auto;font-size:13px}.ed .dot{border:2px solid var(--k-ol);border-radius:50%;flex:none;width:18px;height:18px}.ed .say{font:600 14px/1.4 var(--k-font);color:var(--k-ink2);padding:2px 2px 8px}.ed h3{font:800 17px/1.2 var(--k-font);color:var(--k-ink);margin:6px 2px}.ed #debug{white-space:pre;pointer-events:none;z-index:4;background:#ffffffc7;border-radius:8px;padding:4px 6px;font:11px/1.35 ui-monospace,Menlo,Consolas,monospace;display:none;position:absolute;top:6px;left:6px}.ed #debug.show{display:block}.ed #app.tie #trayBox,.ed #app.tie #tools,.ed #app.tie #paperTools{visibility:hidden}.ed #tieHint{z-index:4;--k-lip:4px;align-items:center;gap:8px;display:none;position:absolute;bottom:14px;left:8px;right:8px}.ed #app.tie #tieHint{display:flex}.ed #tieHint .btn{flex:none;min-height:46px;font-size:15px}.ed #tieHint .hint{text-align:center;font-size:14px}.ed #order.pop{animation:.36s cubic-bezier(.3,1.6,.5,1) pop}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.08)}to{transform:scale(1)}}.ed #flash{opacity:0;pointer-events:none;z-index:20;background:#fff;position:fixed;inset:0}.ed #flash.go{animation:.42s ease-out flash}@keyframes flash{0%{opacity:.92}to{opacity:0}}.ed #polaroid{z-index:15;background:#3c2c1e59;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:16px;display:none;position:fixed;inset:0;overflow:auto}.ed #polaroid.show{display:flex}.ed .pol-card{border:var(--k-olw) solid var(--k-ol);box-shadow:0 6px 0 var(--k-ol), 0 14px 30px #28190a59;opacity:0;background:#fffdf8;border-radius:6px;width:min(78vw,300px);padding:12px 12px 14px;transition:transform .42s cubic-bezier(.2,1.3,.4,1),opacity .26s ease-out;transform:rotate(-2deg)translateY(16px)}.ed #polaroid.developed .pol-card{opacity:1;transform:rotate(-2deg)translateY(0)}.ed #polPhoto canvas{filter:saturate(.15)brightness(1.4)contrast(.8);background:#f3ead9;width:100%;height:auto;transition:filter 1.2s ease-out .15s;display:block}.ed #polaroid.developed #polPhoto canvas{filter:none}.ed #polCaption{color:#5a4630;text-align:center;min-height:18px;margin-top:10px;font-family:Patrick Hand,Segoe Print,Bradley Hand,Comic Sans MS,cursive;font-size:15px}.ed .pol-actions{width:min(86vw,340px)}.ed .pol-actions .btn.wide{min-height:44px;margin:4px 0 6px}.ed .pol-row{gap:10px;display:flex}.ed .pol-row .btn.wide{flex:1 1 0;min-width:0;padding-left:8px;padding-right:8px}.ed #polDetails{background:var(--k-white);border:2.5px solid var(--k-ol);border-radius:16px;padding:8px 10px}.ed #result{z-index:6;background:linear-gradient(#ffcfa800 30%,#ffcfa8f2 55%);align-items:flex-end;padding:8px 10px 14px;display:none;position:absolute;inset:0}.ed #result.show{display:flex}.ed #result .card{width:100%;max-height:70%;padding:10px 14px 12px;overflow:auto}.ed #gift{z-index:20;background:#3c2c1e66;justify-content:center;align-items:flex-end;padding:12px 12px 18px;display:none;position:fixed;inset:0;overflow:auto}.ed #gift.show{display:flex}.ed .gift-panel{background:var(--k-cream);border:var(--k-olw) solid var(--k-ol);border-radius:var(--k-r-lg);width:min(100%,420px);max-height:100%;box-shadow:0 6px 0 var(--k-ol), 0 16px 30px #3c230f40;padding:12px 14px;overflow:auto}.ed .gift-panel input,.ed .gift-panel textarea:not(.gift-link){border:2.5px solid var(--k-ol);width:100%;color:var(--ink);background:#fff;border-radius:14px;height:auto;margin:6px 0;padding:10px 12px;font:20px Patrick Hand,Segoe Print,cursive;display:block}.ed .gift-panel input.need{border-color:var(--k-red);box-shadow:0 0 0 3px #ef6f6c4d}.ed .gift-count{text-align:right;color:var(--k-ink2);margin-top:-4px;font-size:13px}.ed .gift-tpls{gap:8px;margin:6px 0 8px;display:flex}.ed .gift-tpl{border:2.5px solid var(--k-ol);min-height:44px;color:var(--ink);font:700 14px var(--k-font);border-radius:14px;flex:1}.ed .gift-tpl.on{box-shadow:0 3px 0 var(--k-ol);outline:2.5px solid var(--k-coral);outline-offset:-6px}.ed .gift-warn{color:var(--k-red);min-height:4px;font-size:13px}.ed .gift-note{color:var(--k-ink2);margin:6px 0;font-size:13px}.ed .gift-link{word-break:break-all;font-size:13px;height:84px!important}.ed .gift-img{object-fit:contain;border-radius:12px;width:100%;max-height:58dvh;margin:6px 0;display:block}.ed textarea{border:2.5px solid var(--k-ol);-webkit-user-select:text;user-select:text;border-radius:12px;width:100%;height:64px;padding:6px;font:13px ui-monospace,Menlo,Consolas,monospace}.ed #tray.goi{touch-action:auto;cursor:default;padding:4px 10px 8px;display:block;overflow-x:hidden}.ed .goiPanel{--k-olw:2.5px;flex-direction:column;gap:4px;display:flex}.ed .goiSizes{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.ed .goiSize{box-shadow:0 3px 0 var(--k-ol);line-height:1.05;font-family:var(--k-font);touch-action:manipulation;flex-direction:column;align-items:center;padding:2px 4px 3px;display:flex;position:relative}.ed .goiSize span{font-size:15px;font-weight:800}.ed .goiSize small{color:var(--k-ink2);font-size:13px;font-weight:600}.ed .goiSize.on{background:var(--k-coral);color:#fff}.ed .goiSize.on span{text-shadow:0 2px #5b3a2966}.ed .goiSize.on small{color:#fff}.ed .goiSize.rec:after{content:"";background:var(--k-green);border:2px solid var(--k-ol);border-radius:50%;width:9px;height:9px;position:absolute;top:5px;right:7px}.ed .goiShapes,.ed .goiGrid{scrollbar-width:none;touch-action:pan-x;overscroll-behavior-x:contain;gap:7px;padding:3px 2px 4px;display:flex;overflow-x:auto}.ed .goiShapes::-webkit-scrollbar{display:none}.ed .goiGrid::-webkit-scrollbar{display:none}.ed .goiShape{min-width:64px;box-shadow:0 3px 0 var(--k-ol);font:700 13px/1.1 var(--k-font);white-space:nowrap;touch-action:manipulation;flex-direction:column;flex:none;align-items:center;gap:0;padding:2px 8px;transition:transform .12s,background-color .12s;display:flex}.ed .goiShape canvas{width:32px;height:32px}.ed .goiName{font:800 14px/16px var(--k-font);color:var(--k-ink2);padding:0 4px}.ed .goiLook{box-shadow:0 3px 0 var(--k-ol);touch-action:manipulation;flex:0 0 56px;justify-content:center;padding:2px 0;transition:transform .12s,background-color .12s;display:flex}.ed .goiLook canvas{width:38px;height:38px}.ed .goiShape.on,.ed .goiLook.on{background:var(--k-butter);transform:translateY(-2px)rotate(-1.5deg)}@media (max-width:380px){.ed #top .btn{font-size:20px}.ed .item{min-width:68px}}@media (prefers-reduced-motion:reduce){.ed .sheet.show,.ed #order.pop,.ed #flash.go{animation:none}.ed .pol-card,.ed #polPhoto canvas,.ed .item,.ed .goiShape,.ed .goiLook,.ed #order,.ed .btn:not(.k-btn){transition:none}}@media (max-width:380px){.ed #top .btn{width:40px;min-width:40px;height:40px;min-height:40px;font-size:19px}.ed #order .ordTxt{-webkit-line-clamp:2;font-size:12.5px;line-height:1.1}.ed #order .ordBadge{min-width:32px;padding:0 5px}.ed #top #redo{display:none}}
