:root,html[data-theme=light]{--bg: var(--tg-theme-secondary-bg-color, #f2f2f7);--surface: var(--tg-theme-section-bg-color, #ffffff);--surface-2: rgba(118, 118, 128, .12);--surface-3: rgba(118, 118, 128, .2);--line: var(--tg-theme-section-separator-color, rgba(60, 60, 67, .14));--text: var(--tg-theme-text-color, #000000);--muted: var(--tg-theme-hint-color, #8e8e93);--accent: #6c4dff;--accent-2: #ff5fa8;--accent-soft: rgba(108, 77, 255, .11);--on-accent: #ffffff;--grad: linear-gradient(135deg, #7b5cff 0%, #4f6bff 100%);--danger: var(--tg-theme-destructive-text-color, #ff3b30);--good: #34c759;--mid: #ff9f0a;--bad: #ff3b30;--checker-a: #f4f4f7;--checker-b: #e6e6ec;--shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 10px 30px -14px rgba(0, 0, 0, .14);--overlay: rgba(0, 0, 0, .32);--radius: 14px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: 0px;color-scheme:light}html[data-theme=dark]{--bg: var(--tg-theme-secondary-bg-color, #000000);--surface: var(--tg-theme-section-bg-color, #1c1c1e);--surface-2: rgba(118, 118, 128, .24);--surface-3: rgba(118, 118, 128, .34);--line: var(--tg-theme-section-separator-color, rgba(84, 84, 88, .45));--text: var(--tg-theme-text-color, #ffffff);--muted: var(--tg-theme-hint-color, #8e8e93);--accent: #8b74ff;--accent-soft: rgba(139, 116, 255, .18);--checker-a: #2c2c30;--checker-b: #232326;--shadow: 0 10px 30px -14px rgba(0, 0, 0, .6);--overlay: rgba(0, 0, 0, .5);color-scheme:dark}html[data-mode=editor]{--bg: #0b0b0f;--surface: #18181d;--surface-2: rgba(255, 255, 255, .08);--surface-3: rgba(255, 255, 255, .14);--line: rgba(255, 255, 255, .08);--text: #f5f5f7;--muted: #8e8e98;--accent: #8b74ff;--accent-soft: rgba(139, 116, 255, .18);--danger: #ff453a;--checker-a: #2a2a30;--checker-b: #212126;--shadow: 0 10px 30px -14px rgba(0, 0, 0, .7);--overlay: rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;background:var(--bg)}#root{margin:0;height:var(--app-h, 100%);background:var(--bg)}body{color:var(--text);font:16px/1.38 -apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none;user-select:none;-webkit-user-select:none}input,textarea{user-select:text;-webkit-user-select:text}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}button:disabled{opacity:.4;cursor:default}img{display:block}h2{font-size:20px;margin:0;font-weight:700;letter-spacing:-.02em}.row{display:flex;align-items:center}.col{display:flex;flex-direction:column}.gap8{gap:8px}.gap12{gap:12px}.grow{flex:1}.muted{color:var(--muted)}.hint{color:var(--muted);font-size:13.5px;line-height:1.35}.hint.center{text-align:center}.hint.warn{color:var(--mid)}.title{font-size:17px;font-weight:600;letter-spacing:-.01em}.center-screen{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px;text-align:center}.center-pad{padding:40px;display:flex;justify-content:center}.checker{background-color:var(--checker-a);background-image:conic-gradient(var(--checker-b) 25%,transparent 0 50%,var(--checker-b) 0 75%,transparent 0);background-size:16px 16px}.duck{display:block;object-fit:contain;pointer-events:none;-webkit-user-drag:none}.duck-pop{animation:duck-pop .5s cubic-bezier(.2,1.4,.4,1) both}@keyframes duck-pop{0%{transform:scale(.6) translateY(10px);opacity:0}}.duck-bob{animation:duck-bob 2.4s ease-in-out infinite}@keyframes duck-bob{50%{transform:translateY(-6px) rotate(-2deg)}}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:18px 24px 26px}.empty .title{font-size:20px;font-weight:700;margin-top:6px}.empty .hint{max-width:290px;font-size:15px}.empty .btn{margin-top:14px;min-width:220px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:50px;padding:0 20px;border-radius:var(--radius);background:var(--surface-2);color:var(--text);font-size:17px;font-weight:600;white-space:nowrap;transition:transform .12s ease,opacity .2s,background .2s}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-soft{background:var(--accent-soft);color:var(--accent)}.btn-ghost{background:transparent;color:var(--accent)}.btn-sm{height:36px;padding:0 14px;font-size:15px;border-radius:18px}.btn-block{width:100%}.btn.danger{color:var(--danger)}.btn-row{display:flex;gap:10px}.btn-row .btn{flex:1}.icon-btn{width:40px;height:40px;border-radius:20px;display:inline-flex;align-items:center;justify-content:center;color:var(--text);transition:background .15s;flex-shrink:0}.icon-btn:active:not(:disabled){background:var(--surface-2)}.icon-btn.filled{background:var(--surface-2);width:34px;height:34px;border-radius:17px;color:var(--muted)}.link-btn{color:var(--accent);font-size:16px;font-weight:500;display:inline-flex;align-items:center;gap:2px}.screen{min-height:100%;padding:calc(10px + var(--safe-top)) 16px calc(40px + var(--safe-bottom))}.large-title{display:flex;align-items:flex-end;gap:12px;padding:14px 4px 18px}.large-title>div:first-child{flex:1;min-width:0}.large-title h1{margin:0;font-size:32px;font-weight:800;letter-spacing:-.035em;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.large-title .sub{color:var(--muted);font-size:15px;margin-top:3px;display:flex;align-items:center;gap:4px}.large-title .sub button{color:var(--accent)}.section{margin-bottom:28px}.section-head{display:flex;align-items:baseline;justify-content:space-between;padding:0 4px 10px}.section-foot{color:var(--muted);font-size:13px;padding:8px 16px 0}.hero{position:relative;display:flex;align-items:center;width:100%;min-height:148px;padding:20px;text-align:left;border-radius:22px;background:var(--grad);color:#fff;overflow:hidden;margin-bottom:28px;box-shadow:0 16px 36px -18px #4f6bffbf;transition:transform .15s}.hero:active{transform:scale(.985)}.hero-text{position:relative;z-index:1;max-width:58%;display:flex;flex-direction:column;gap:4px}.hero-text b{font-size:24px;font-weight:800;letter-spacing:-.03em;line-height:1.1}.hero-text span{font-size:14.5px;opacity:.85}.hero-cta{margin-top:12px;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:17px;background:#fffffff2;color:#3b2fd6;font-weight:700;font-size:15px}.hero .duck{position:absolute;right:-10px;bottom:-20px;width:186px;height:186px}.hero:after{content:"";position:absolute;right:-40px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.28),transparent 65%)}.list{background:var(--surface);border-radius:var(--radius);overflow:hidden}.list-row{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:50px;padding:8px 14px;text-align:left;font-size:16.5px;color:var(--text);transition:background .12s}.list-row:active:not(:disabled){background:var(--surface-2)}.list-row+.list-row:before{content:"";position:absolute;top:0;right:0;left:var(--sep-left, 14px);height:.5px;background:var(--line)}.list.with-icons{--sep-left: 58px}.list.with-thumbs{--sep-left: 72px}.list-row .main{flex:1;min-width:0;display:flex;flex-direction:column}.list-row .main b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-row .main span{color:var(--muted);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-row .chev{color:var(--muted);opacity:.6;flex-shrink:0}.list-row .value{color:var(--muted);font-size:15.5px}.list-row.danger{color:var(--danger)}.list-row.accent{color:var(--accent)}.row-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;background:var(--accent)}.row-icon.blue{background:#0a84ff}.row-icon.green{background:#30d158}.row-icon.orange{background:#ff9f0a}.row-icon.pink{background:#ff375f}.row-icon.gray{background:#8e8e93}.row-icon.violet{background:#7b5cff}.list-row.danger .row-icon{background:var(--danger)}.row-thumb{width:46px;height:46px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--surface-2)}.row-thumb img{width:88%;height:88%;object-fit:contain}.media-strip{display:flex;gap:8px;overflow-x:auto;padding:0 16px 2px;margin:0 -16px;scrollbar-width:none}.media-strip::-webkit-scrollbar{display:none}.media-thumb{flex:0 0 84px;height:84px;border-radius:12px;overflow:hidden;background:var(--surface);position:relative;display:flex;align-items:center;justify-content:center}.media-thumb img{width:100%;height:100%;object-fit:cover}.media-thumb.add{color:var(--accent);background:var(--accent-soft);flex-direction:column;gap:2px;font-size:12.5px;font-weight:600}.badge{font-size:11px;font-weight:600;background:#0000008c;color:#fff;padding:2px 6px;border-radius:6px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.media-thumb .badge{position:absolute;right:4px;bottom:4px}.badge.tg{background:#2aabee}.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;border-radius:var(--radius);overflow:hidden}.media-grid.compact{margin-top:14px;grid-template-columns:repeat(4,1fr)}.media-tile{aspect-ratio:1;overflow:hidden;position:relative}.media-tile img{width:100%;height:100%;object-fit:contain}.media-tile.busy img{opacity:.4}.tile-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.tile-overlay.err{color:#fff;background:#ff3b308c}.tile-badges{position:absolute;left:4px;bottom:4px;right:4px;display:flex;gap:3px;flex-wrap:wrap}.upload-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;padding:14px;background:var(--surface);border-radius:var(--radius)}.upload-item{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}.sticker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px;background:var(--surface);border-radius:var(--radius)}.sticker-cell{aspect-ratio:1;border-radius:12px;position:relative;display:flex;align-items:center;justify-content:center;touch-action:manipulation;-webkit-touch-callout:none;transition:background .15s}.sticker-cell:active{background:var(--surface-2)}.sticker-cell img{width:90%;height:90%;object-fit:contain;pointer-events:none}.sticker-cell.ghost{opacity:.2}.sticker-cell.dragging{transform:scale(1.12);background:var(--surface);box-shadow:var(--shadow)}.cell-emoji{position:absolute;right:2px;bottom:0;font-size:13px}.cell-index,.cell-dot{display:none}.add-cell{color:var(--accent);background:var(--accent-soft)}.tile-media{position:relative;width:90%;height:90%}.tile-media img,.tile-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;transition:opacity .15s}.floating-bar{position:fixed;left:12px;right:12px;bottom:calc(12px + var(--safe-bottom));z-index:30;display:flex;gap:8px;padding:8px;border-radius:22px;background:var(--surface);box-shadow:0 12px 40px -10px #00000059;animation:rise .25s ease}.floating-bar .btn{height:46px}.floating-bar .btn-primary{flex:1}@keyframes rise{0%{transform:translateY(30px);opacity:0}}.sticker-detail,.media-detail{display:flex;flex-direction:column;gap:16px}.sticker-big,.media-big,.result-preview{width:min(240px,66vw);height:min(240px,66vw);border-radius:20px;overflow:hidden;align-self:center;display:flex;align-items:center;justify-content:center;background:var(--surface-2)}.sticker-big img,.sticker-big video,.media-big img,.result-preview img,.result-preview video{width:92%;height:92%;object-fit:contain}.field-label{font-size:13px;color:var(--muted);padding:0 4px;margin-bottom:-8px}.error-box{background:#ff3b301a;color:var(--danger);padding:12px 14px;border-radius:12px;font-size:14px}.form{display:flex;flex-direction:column;gap:14px}.input-label{font-size:13px;color:var(--muted);padding:0 4px;margin-bottom:-8px}.input-affix{display:flex;align-items:center;min-height:50px;border-radius:12px;background:var(--surface-2);overflow:hidden;font-size:14px;color:var(--muted)}.input-affix span{padding:0 2px 0 14px;white-space:nowrap}.input-affix .affix-end{padding:0 14px 0 0;max-width:40%;overflow:hidden;text-overflow:ellipsis}.input-affix input{flex:1;min-width:40px;height:50px;border:0;background:none;color:var(--text);font:inherit;font-size:16px;outline:none}html[data-theme=light]:not([data-mode=editor]) .sheet .input-affix{background:var(--surface)}.emoji-input{flex:1;min-width:60px;height:42px;background:none;border:0;outline:none;color:var(--text);font:inherit;font-size:24px;padding:0 6px}.emoji-input::placeholder{font-size:15px;color:var(--muted)}.kw-input{flex:1;min-width:120px;height:32px;background:none;border:0;color:var(--text);font:inherit;font-size:16px;outline:none;padding:0 6px}.input,.text-input{width:100%;min-height:50px;padding:0 16px;border-radius:12px;border:0;background:var(--surface-2);color:var(--text);font:inherit;font-size:17px;outline:none}.sheet .input,.sheet .text-input{background:var(--surface-2)}.field-btn{display:flex;align-items:center;gap:4px;text-align:left;overflow:hidden}.field-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-value.placeholder{color:var(--muted)}.field-affix{color:var(--muted);font-size:14px;flex-shrink:0}.text-field{min-height:52px;padding:10px 14px}.text-field .field-value{white-space:pre-line;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600;font-size:17px}.segmented{display:flex;background:var(--surface-2);border-radius:10px;padding:2px}.segmented button{flex:1;min-height:32px;padding:0 6px;border-radius:8px;font-size:14px;font-weight:600;color:var(--text);display:flex;align-items:center;justify-content:center;line-height:1.1;transition:background .15s}.segmented button.on{background:var(--surface);box-shadow:0 1px 4px #00000024}html[data-mode=editor] .segmented button.on,html[data-theme=dark] .segmented button.on{background:#636366}.toggle-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:10px 14px;min-height:50px}.toggle-row+.toggle-row{border-top:.5px solid var(--line)}.toggle-text{flex:1;font-size:16.5px}.toggle-text .hint{font-size:13px;margin-top:1px}.toggle{width:51px;height:31px;border-radius:16px;background:var(--surface-3);position:relative;flex-shrink:0;transition:background .2s}.toggle div{position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:14px;background:#fff;box-shadow:0 2px 6px #0003;transition:transform .22s cubic-bezier(.3,1.3,.5,1)}.toggle.on{background:var(--good)}.toggle.on div{transform:translate(20px)}.card-soft{background:var(--surface);border-radius:var(--radius);overflow:hidden}.sheet .card-soft,.sheet .list{background:var(--surface-2)}html[data-theme=light]:not([data-mode=editor]) .sheet .card-soft,html[data-theme=light]:not([data-mode=editor]) .sheet .list,html[data-theme=light]:not([data-mode=editor]) .sheet .input,html[data-theme=light]:not([data-mode=editor]) .sheet .stats{background:var(--surface)}.color-row{display:flex;flex-direction:column;gap:8px}.swatches{display:flex;flex-wrap:wrap;gap:8px}.swatch{width:32px;height:32px;border-radius:16px;border:0;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #7f7f7f4d}.swatch.on{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--accent)}.swatch.custom{background-image:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red)!important}.swatch.custom input{position:absolute;inset:0;opacity:0;width:100%;height:100%}.spinner{border-radius:50%;border:2.5px solid var(--surface-3);border-top-color:var(--accent);animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite;flex-shrink:0}.progress{height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden;width:100%}.progress div{height:100%;background:var(--accent);border-radius:3px;transition:width .3s ease}.sheet-root{position:fixed;top:0;left:0;right:0;height:var(--app-h, 100%);z-index:100}.sheet-backdrop{position:absolute;inset:0;background:var(--overlay);opacity:0;transition:opacity .25s}.sheet{position:absolute;left:0;right:0;bottom:0;max-height:90%;display:flex;flex-direction:column;background:var(--bg);border-radius:14px 14px 0 0;transform:translateY(100%);transition:transform .32s cubic-bezier(.2,.9,.2,1);padding-bottom:var(--safe-bottom)}html[data-theme=dark] .sheet,html[data-mode=editor] .sheet{background:var(--surface)}.sheet-tall{height:90%}.sheet-root.shown .sheet-backdrop{opacity:1}.sheet-root.shown .sheet{transform:translateY(0)}.sheet-grip{width:36px;height:5px;border-radius:3px;background:var(--surface-3);margin:6px auto 0;flex-shrink:0}.sheet-head{display:flex;align-items:center;justify-content:center;padding:8px 52px 10px;flex-shrink:0;position:relative;min-height:44px}.sheet-title{font-size:17px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-head .icon-btn{position:absolute;right:12px;top:6px}.sheet-body{padding:4px 16px 20px;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:16px}.toasts{position:fixed;top:calc(10px + var(--safe-top));left:12px;right:12px;z-index:400;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.toast{padding:11px 18px;border-radius:22px;background:#1c1c1eeb;color:#fff;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-size:15px;font-weight:500;box-shadow:0 10px 30px -10px #0006;animation:drop .28s cubic-bezier(.2,1.2,.4,1);max-width:100%}.toast.err{background:#d72832f2}@keyframes drop{0%{transform:translateY(-20px);opacity:0}}.queue-pill{position:fixed;left:50%;transform:translate(-50%);bottom:calc(14px + var(--safe-bottom));z-index:40;display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;border-radius:19px;max-width:80vw;background:var(--surface);color:var(--text);font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 10px 30px -8px #0000004d}.queue-pill svg{color:var(--accent)}.editor~.queue-pill{bottom:auto;top:calc(56px + var(--safe-top))}.job-list{display:flex;flex-direction:column}.job-row{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--surface-2)}.job-row:first-child{border-radius:12px 12px 0 0}.job-row:last-child{border-radius:0 0 12px 12px}.job-row:only-child{border-radius:12px}.job-row+.job-row{border-top:.5px solid var(--line)}.job-row.cancelled,.job-row.done{opacity:.55}.job-row.error .hint{color:var(--bad)}.job-main{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.job-title{font-weight:600;font-size:15px}.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.emoji-editor .chips,.kw-editor .chips{background:var(--surface);border-radius:12px;padding:8px;min-height:58px}.sheet .emoji-editor .chips,.sheet .kw-editor .chips{background:var(--surface-2)}html[data-theme=light]:not([data-mode=editor]) .sheet .emoji-editor .chips,html[data-theme=light]:not([data-mode=editor]) .sheet .kw-editor .chips{background:var(--surface)}.entry-body .chips{min-height:0;background:none!important;padding:0}.emoji-chip{height:42px;min-width:42px;padding:0 6px;border-radius:12px;background:var(--surface-2);font-size:25px;display:inline-flex;align-items:center;justify-content:center;position:relative}.emoji-chip.main{background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent)}.emoji-chip .chip-x{position:absolute;top:-5px;right:-5px;width:18px;height:18px;border-radius:9px;background:var(--muted);color:var(--surface);display:flex;align-items:center;justify-content:center}.emoji-add{color:var(--muted);font-size:15px;padding:0 8px;flex:1}.counter{color:var(--muted);font-size:12.5px;margin-left:auto;padding-right:4px}.kw-chip{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 6px 0 12px;border-radius:16px;background:var(--surface-2);font-size:14.5px;font-weight:500}.kw-chip button{display:flex;color:var(--muted)}.counter-line{font-size:12.5px;color:var(--muted);padding:6px 4px 0}.counter-line.warn{color:var(--mid)}.pack-pick{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px}.pack-pick::-webkit-scrollbar{display:none}.pack-pill{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 14px 0 6px;border-radius:22px;background:var(--surface-2);font-weight:500;font-size:15px;max-width:70vw}.pack-pill>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pack-pill img{width:32px;height:32px;object-fit:contain}.pack-pill .pill-dot{width:32px;height:32px;border-radius:16px;background:var(--surface-3)}.pack-pill.on{background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent)}.pack-pill.add{color:var(--accent);padding:0 16px}.render-progress{display:flex;flex-direction:column;align-items:center;gap:12px;padding:6px 12px 10px;text-align:center}.render-progress .title{font-size:20px;font-weight:700}.render-progress .progress{max-width:260px}.stats{display:grid;grid-template-columns:repeat(3,1fr);background:var(--surface-2);border-radius:12px}.stats>div{padding:10px 12px;display:flex;flex-direction:column;gap:1px}.stats>div+div{border-left:.5px solid var(--line)}.stats span{font-size:12px;color:var(--muted)}.stats b{font-size:16px;font-weight:600}.stats b.good{color:var(--good)}.stats b.mid{color:var(--mid)}.stats b.bad{color:var(--bad)}.stats small{color:var(--muted);font-size:12px}.sheet.sheet-export{max-height:52%}.sheet-root:has(.sheet-export) .sheet-backdrop{background:#0000001a}.more-toggle{align-self:center;display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-size:15px;font-weight:500;padding:4px 8px}.done-screen{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:4px 8px 6px}.done-screen .title{font-size:22px;font-weight:800;letter-spacing:-.02em}.done-screen .btn-row{width:100%;margin-top:14px}.footer-link{display:block;margin:18px auto 0;color:var(--muted);font-size:13px}.diag-list{display:flex;flex-direction:column;background:var(--surface);border-radius:var(--radius);margin:14px 0;overflow:hidden}.diag-row{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;font-size:14.5px}.diag-row+.diag-row{border-top:.5px solid var(--line)}.diag-row b{text-align:right;font-weight:500}.diag-row.ok b{color:var(--good)}.diag-row.no b{color:var(--bad)}.editor{position:fixed;top:0;left:0;right:0;height:var(--app-h, 100%);display:flex;flex-direction:column;background:var(--bg);padding-top:var(--safe-top)}.editor-top{display:flex;align-items:center;gap:2px;padding:8px 12px 4px 8px;flex-shrink:0}.editor-meta{font-size:13px;color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums;position:absolute;left:50%;transform:translate(-50%)}.editor-top .btn-primary{height:36px;padding:0 16px;border-radius:18px;font-size:15.5px}.editor-stage{flex-shrink:0;display:flex;justify-content:center;align-items:center;gap:10px;padding:6px 10px 10px}.stage{position:relative;border-radius:16px;touch-action:none}.stage-canvas{display:block;border-radius:16px;touch-action:none;background-color:var(--checker-a);background-image:conic-gradient(var(--checker-b) 25%,transparent 0 50%,var(--checker-b) 0 75%,transparent 0);background-size:20px 20px}.stage-wrap{display:flex;justify-content:center;align-items:center;flex:1;min-width:0}.stage-wrap.bg-dark .stage-canvas{background:#0e1621}.stage-wrap.bg-light .stage-canvas{background:#dfe6ec}.sel-frame{position:absolute;border:1.5px dashed rgba(255,255,255,.85);border-radius:8px;pointer-events:none;box-shadow:0 0 0 1px #00000059}.sel-frame.sel-media{border-color:#8b74ffbf}.sel-handle{position:absolute;right:-14px;bottom:-14px;width:28px;height:28px;border-radius:14px;pointer-events:auto;touch-action:none;background:#fff;box-shadow:0 2px 10px #00000080;background-image:radial-gradient(circle,var(--accent) 0 4px,transparent 5px)}.guide{position:absolute;background:#ff5fa8e6;pointer-events:none}.guide-v{left:50%;top:0;bottom:0;width:1px}.guide-h{top:50%;left:0;right:0;height:1px}.rail{display:flex;flex-direction:column;gap:10px;flex-shrink:0}.rail-btn{position:relative;width:40px;height:40px;border-radius:20px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;color:var(--text)}.rail-btn:disabled{opacity:.25}.rail-btn.on{background:var(--accent);color:#fff}.rail-btn.danger{color:var(--danger)}.rail-plus{position:absolute;right:5px;top:5px}.bg-dot{width:18px;height:18px;border-radius:9px;box-shadow:inset 0 0 0 1.5px #ffffff80}.bg-dot.checker{background:repeating-conic-gradient(#777 0 25%,#333 0 50%) 0 0 / 9px 9px}.bg-dot.dark{background:#0e1621}.bg-dot.light{background:#dfe6ec}.editor-bottom{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;background:var(--surface);border-radius:22px 22px 0 0}.editor-panel{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:16px 16px 12px}.editor-tabs{display:flex;justify-content:space-around;padding:6px 4px calc(6px + var(--safe-bottom));flex-shrink:0;border-top:.5px solid var(--line);overflow-x:auto;scrollbar-width:none}.editor-tabs::-webkit-scrollbar{display:none}.editor-tabs button{flex:1 0 auto;min-width:56px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px 4px;font-size:11px;font-weight:500;color:var(--muted);transition:color .15s}.editor-tabs button.on{color:var(--accent)}.panel{display:flex;flex-direction:column;gap:16px;min-width:0}.media-row{display:flex;gap:12px;align-items:center}.media-mini{position:relative;width:96px;height:96px;border-radius:14px;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center}.quick-actions{display:grid;gap:8px}.gesture-hint{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 0 4px;color:var(--muted);font-size:14px}.rail{width:40px}.quick-actions button{display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 2px 11px;border-radius:16px;background:var(--surface-2);font-size:12px;font-weight:500;color:var(--text);min-width:0}.quick-actions button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-actions button:active{background:var(--surface-3)}.media-mini img{width:100%;height:100%;object-fit:contain}.editor .btn{height:44px;font-size:15.5px;border-radius:12px}.editor .btn-soft{background:var(--surface-2);color:var(--text)}.editor-top .btn-primary{height:36px;border-radius:18px}.pslider{display:flex;flex-direction:column;gap:2px}.pslider-top{display:flex;align-items:center;justify-content:space-between;min-height:30px}.pslider-label{font-size:15px;font-weight:500}.pslider-value{margin-left:auto;min-width:54px;height:28px;padding:0 10px;border-radius:14px;background:var(--surface-2);font-weight:600;font-variant-numeric:tabular-nums;font-size:14px}.pslider-track{position:relative;padding-bottom:20px}.pslider-track input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:40px;background:transparent;margin:0;touch-action:pan-y;position:relative;z-index:1}.pslider-track input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(90deg,var(--accent) 0,var(--accent) var(--pct),var(--surface-3) var(--pct))}.pslider-track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;border-radius:50%;margin-top:-12px;background:#fff;box-shadow:0 1px 3px #0000004d,0 4px 12px #00000040}.pslider-track input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--surface-3)}.pslider-track input[type=range]::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:#fff;border:0}.pslider-tick{position:absolute;top:36px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:1px;padding:0 2px;pointer-events:none;z-index:2}.pslider-tick i{width:2px;height:4px;border-radius:1px;background:var(--muted);opacity:.5;margin-bottom:2px}.pslider-tick span{font-size:11px;color:var(--muted);white-space:nowrap;font-weight:500;pointer-events:auto;padding:1px 4px}.pslider-tick.on span{color:var(--text);font-weight:600}.pslider-tick.on i{background:var(--accent);opacity:1}.pslider-tick.edge-l{transform:translate(-4px);align-items:flex-start}.pslider-tick.edge-r{transform:translate(calc(-100% + 4px));align-items:flex-end}.chipbar{display:flex;gap:5px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:2px 16px}.chipbar::-webkit-scrollbar{display:none}.chipbar button{flex:1 0 auto;height:34px;padding:0 11px;border-radius:17px;background:var(--surface-2);font-size:14px;font-weight:500;color:var(--text);position:relative;transition:background .15s,color .15s}.chipbar button.on{background:var(--text);color:var(--bg);font-weight:600}.chip-dot{position:absolute;top:5px;right:6px;width:6px;height:6px;border-radius:3px;background:var(--accent)}.chipbar button.on .chip-dot{background:var(--accent)}.tilegrid{display:grid;gap:8px}.tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:9px 2px 8px;border-radius:14px;background:var(--surface-2);min-width:0;transition:background .15s,box-shadow .15s}.tile.on{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.tile-icon{display:flex;align-items:center;justify-content:center;height:40px}.tilegrid .tile-icon:has(canvas[style*="56px"]){height:56px}.tilegrid .tile-icon canvas{max-width:100%}.tile-label{font-size:11.5px;font-weight:500;color:var(--muted);max-width:100%;line-height:1.15;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.tile.on .tile-label{color:var(--text);font-weight:600}.tile-adj{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:10px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #0006}.emoji-icon{font-size:26px;line-height:1}.filter-swatch{width:36px;height:36px;border-radius:10px;display:block}.shadow-plate{width:40px;height:40px;border-radius:10px;background:#c9cfdb;display:flex;align-items:center;justify-content:center}.shadow-plate.dark{background:#3a3550}.shadow-icon,.glow-icon{width:22px;height:22px;border-radius:7px;background:linear-gradient(135deg,#8b74ff,#ff5fa8)}.option-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px}.option-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px;border-radius:14px;background:var(--surface-2);text-align:left}.option-card b{font-size:16px;font-weight:600}.option-card span{font-size:13.5px;color:var(--muted)}.option-card.on{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.fit-banner{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:14px;background:#ff9f0a1f}.fit-title{font-weight:600;font-size:14.5px;color:#ffb340}.fit-options{display:flex;gap:6px;flex-wrap:wrap}.fit-options button{height:32px;padding:0 12px;border-radius:16px;background:var(--surface-2);font-size:13.5px;font-weight:500}.fit-options button.on{background:#ff9f0a;color:#241600;font-weight:600}.layer-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px}.layer-chip{flex:0 0 auto;display:inline-flex;align-items:center;border-radius:17px;background:var(--surface-2);overflow:hidden}.layer-chip.on{background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent)}.layer-chip .layer-name{height:34px;padding:0 6px 0 14px;font-weight:500;font-size:14.5px}.layer-chip .layer-pin{height:34px;width:32px;display:flex;align-items:center;justify-content:center;color:var(--muted)}.layer-chip .layer-pin.on{color:var(--accent)}.layer-chip.add{padding:0 14px;height:34px;color:var(--accent);font-weight:600;font-size:14.5px}.layer-actions{padding-top:4px}.layer-actions .btn{flex:1}.preset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.preset-tile,.font-tile{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:14px;background:var(--surface-2);font-size:11.5px;font-weight:500;color:var(--muted);min-width:0}.font-tile.on{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent);color:var(--text)}.font-cat{min-width:0;display:flex;flex-direction:column;gap:8px}.font-cat .field-label{margin:0}.font-row{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;max-width:100%}.font-row::-webkit-scrollbar{display:none}.font-tile{flex:0 0 108px;padding:10px 6px 8px}.font-tile span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.font-sample{font-size:22px;color:var(--text);white-space:nowrap;overflow:hidden;max-width:100%;height:32px;line-height:32px;transition:opacity .3s}.tl{display:flex;flex-direction:column;gap:6px;margin:0 -16px}.tl-scroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:4px 0;touch-action:pan-x;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 14px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 14px),transparent 100%)}.tl-scroll::-webkit-scrollbar{display:none}.tl-track{position:relative;min-width:100%}.tl-ruler{position:absolute;left:0;right:0;height:26px;pointer-events:none}.tl-ruler span{position:absolute;top:4px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums}.tl-ruler i{width:1px;height:5px;background:var(--muted);opacity:.6}.tl-frames{position:absolute;top:4px;height:56px;border-radius:10px;overflow:hidden;background:var(--surface-2)}.tl-frames img{position:absolute;top:0;height:100%;object-fit:cover;pointer-events:none}.tl-dim{position:absolute;top:4px;height:56px;background:#0b0b0f9e;pointer-events:none}.tl-cut{position:absolute;top:4px;height:56px;pointer-events:none;background:repeating-linear-gradient(135deg,#ff453a80 0 6px,#0b0b0f80 6px 12px)}.tl-curve{position:absolute;left:0;top:4px;pointer-events:none;filter:drop-shadow(0 0 2px rgba(0,0,0,.9))}.tl-window{position:absolute;top:1px;height:62px;border-top:3px solid var(--accent);border-bottom:3px solid var(--accent);touch-action:none;box-shadow:0 0 0 1px #00000040}.tl-handle{position:absolute;top:-3px;bottom:-3px;width:20px;background:var(--accent);touch-action:none;display:flex;align-items:center;justify-content:center}.tl-handle i{width:3px;height:22px;border-radius:2px;background:#ffffffe6}.tl-handle.left{left:-20px;border-radius:10px 0 0 10px}.tl-handle.right{right:-20px;border-radius:0 10px 10px 0}.tl-head{position:absolute;top:-2px;bottom:0;left:-12px;width:24px;touch-action:none;display:flex;justify-content:center;z-index:2}.tl-head:before{content:"";width:2.5px;height:100%;background:#fff;border-radius:2px;box-shadow:0 0 5px #000000b3}.tl-head i{position:absolute;top:-5px;width:12px;height:12px;border-radius:6px;background:#fff;box-shadow:0 1px 6px #0009}.tl-info{display:flex;justify-content:space-between;align-items:baseline;padding:0 22px;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}.tl-info b{color:var(--text);font-size:14px;font-weight:600}#adjust-root{position:absolute;inset:0;pointer-events:none;z-index:20}#adjust-root:empty{display:none}.adjust{position:absolute;inset:0;pointer-events:auto;display:flex;flex-direction:column;background:var(--surface);border-radius:22px 22px 0 0;box-shadow:0 -10px 30px #00000073;animation:adjust-in .22s cubic-bezier(.2,.9,.3,1)}@keyframes adjust-in{0%{transform:translateY(24px);opacity:0}}.adjust-head{display:flex;align-items:center;gap:10px;padding:14px 12px 8px 18px;flex-shrink:0}.adjust-title{flex:1;font-size:17px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adjust-done{width:36px;height:36px;border-radius:18px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.adjust-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:4px 16px calc(24px + var(--safe-bottom));display:flex;flex-direction:column;gap:16px}.entry-root{position:fixed;top:0;left:0;right:0;height:var(--app-h, 100%);z-index:300}.entry-backdrop{position:absolute;inset:0;background:#00000047;animation:entry-fade .15s ease-out}@keyframes entry-fade{0%{opacity:0}}.entry-card{position:absolute;left:0;right:0;transform:translateY(-100%);background:var(--surface);border-radius:20px 20px 0 0;padding:10px 12px 12px;box-shadow:0 -10px 30px #00000059;transition:top .25s cubic-bezier(.2,.9,.3,1);animation:entry-fade .18s ease-out}.entry-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.entry-title{flex:1;text-align:center;font-weight:600;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-cancel{height:36px;padding:0 6px;color:var(--accent);font-size:16.5px;min-width:76px;text-align:left}.entry-done{height:36px;padding:0 16px;border-radius:18px;background:var(--accent);color:#fff;font-weight:600;font-size:16px;min-width:76px;display:flex;align-items:center;justify-content:center}.entry-done:disabled{opacity:.4}.entry-body{display:flex;flex-direction:column;gap:10px}.entry-field{position:relative;display:flex;align-items:center;background:var(--surface-2);border-radius:12px}.entry-input{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--text);font:inherit;font-size:18px;padding:12px 14px;resize:none}textarea.entry-input{font-size:22px;font-weight:600;line-height:1.25;text-align:center;max-height:30vh}.entry-suffix{padding-right:14px;color:var(--muted);font-weight:600}html.tg-fullscreen{--safe-top: calc(var(--tg-safe-area-inset-top, 0px) + var(--tg-content-safe-area-inset-top, 0px));--safe-bottom: max(env(safe-area-inset-bottom, 0px), var(--tg-safe-area-inset-bottom, 0px))}@media(min-width:700px){.screen{max-width:680px;margin:0 auto}.editor>*{width:100%;max-width:680px;margin-left:auto;margin-right:auto}.editor-tabs{justify-content:center}.editor-tabs button{flex:0 0 84px}.sheet,.entry-card,.toasts{max-width:680px;margin:0 auto}}
