.pub-app-page,.pub-app-page *,.pub-app-page :before,.pub-app-page :after{box-sizing:border-box;margin:0;padding:0}html.dark .pub-app-page{--bg-primary:#1a1a1a;--bg-secondary:#262626;--bg-tertiary:#2a2a2a;--bg-elevated:#303030;--text-primary:#eae6df;--text-secondary:#a8a29e;--text-muted:#9a948e;--accent:#d4836a;--accent-hover:#e09478;--accent-soft:#d4836a14;--accent-soft-border:#d4836a4d;--border:#333;--border-light:#2d2d2d;--card-hover-border:#d4836a33;--scrollbar-thumb:#4a4a4a;--scrollbar-hover:#5a5a5a;--err:#f87171;--ok:#22c55e;--warn:#f59e0b}html.light .pub-app-page{--bg-primary:#f0eeeb;--bg-secondary:#f5f3f0;--bg-tertiary:#e8e6e3;--bg-elevated:#dfdcd8;--text-primary:#1c1917;--text-secondary:#57534e;--text-muted:#6b6560;--accent:#c4704f;--accent-hover:#b5614a;--accent-soft:#c4704f14;--accent-soft-border:#c4704f47;--border:#d6d3d1;--border-light:#e7e5e4;--card-hover-border:#c4704f4d;--scrollbar-thumb:#c4c4c4;--scrollbar-hover:#a0a0a0;--err:#b91c1c;--ok:#166534;--warn:#d97706}.pub-app-page{--font-body:"Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display:"Cormorant Garamond", Georgia, serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--cover-from:#d4836a;--cover-to:#e09478;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-card:10px;--page-max:860px;--accent-cta:#a2523c;--accent-cta-hover:#8f4530;font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);scrollbar-gutter:stable;flex:1;min-height:0;line-height:1.6;transition:background .3s,color .3s;overflow:hidden auto}.pub-app-page.scroll-locked{overflow:hidden}.pub-app-page a{color:inherit;text-decoration:none}.pub-app-page button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}.pub-app-page input,.pub-app-page textarea{font-family:inherit}.pub-app-page :focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pub-app-page ::-webkit-scrollbar{width:8px;height:8px}.pub-app-page ::-webkit-scrollbar-track{background:0 0}.pub-app-page ::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}.pub-app-page ::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover)}.pub-app-page .page{max-width:var(--page-max);margin:0 auto;padding:28px 24px 64px}.pub-app-page .page-head{margin-bottom:24px}.pub-app-page .page-title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:8px;font-size:clamp(1.7rem,3vw,2.2rem);font-weight:700;line-height:1.25}.pub-app-page .page-sub{color:var(--text-secondary);font-size:13.5px}.pub-app-page .page-sub b{color:var(--accent);font-weight:600}.pub-app-page .idem-line{font-family:var(--font-mono);letter-spacing:.3px;color:var(--text-muted);margin-top:10px;font-size:11px}.pub-app-page .form-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-card);margin-bottom:18px;padding:22px 28px 26px}.pub-app-page .card-head{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:16px;display:flex}.pub-app-page .card-no{font-family:var(--font-mono);letter-spacing:.8px;color:var(--accent);font-size:11px;font-weight:600}.pub-app-page .card-title{color:var(--text-primary);font-size:15px;font-weight:600}.pub-app-page .card-hint{color:var(--text-muted);text-align:right;margin-left:auto;font-size:11.5px}.pub-app-page .field{flex-direction:column;gap:8px;display:flex}.pub-app-page .field+.field{margin-top:18px}.pub-app-page .field-label{color:var(--text-secondary);align-items:baseline;gap:8px;font-size:12.5px;font-weight:600;display:flex}.pub-app-page .field-label .req{color:var(--accent);font-weight:700}.pub-app-page .field-label .hint{color:var(--text-muted);font-size:11px;font-weight:400}.pub-app-page .text-input,.pub-app-page .text-area{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-tertiary);width:100%;color:var(--text-primary);padding:10px 12px;font-size:14px;transition:border-color .15s,background .15s}.pub-app-page .text-input:focus,.pub-app-page .text-area:focus{border-color:var(--accent);background:var(--bg-primary);outline:none}.pub-app-page .text-input::placeholder,.pub-app-page .text-area::placeholder{color:var(--text-muted)}.pub-app-page .text-area{resize:vertical;min-height:88px;line-height:1.6}.pub-app-page .field-err{color:var(--err);min-height:16px;font-size:12px}.pub-app-page .cover-row{grid-template-columns:minmax(0,1fr) 180px;align-items:start;gap:14px;display:grid}.pub-app-page .cover-frame{aspect-ratio:16/9;border-radius:var(--radius-md);border:1px dashed var(--border);background:var(--bg-tertiary);color:var(--text-muted);justify-content:center;align-items:center;font-size:12.5px;display:flex;position:relative;overflow:hidden}.pub-app-page .cover-frame img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.pub-app-page .cover-actions{flex-direction:column;gap:8px;display:flex}.pub-app-page .cover-upload-status{align-items:center;gap:8px;margin-top:6px;font-size:12px;display:flex}.pub-app-page .cover-upload-status.uploading{color:var(--text-muted)}.pub-app-page .cover-upload-status.failed{color:var(--err)}.pub-app-page .cover-retry-btn{color:var(--err);border:1px solid color-mix(in srgb, var(--err) 45%, transparent);background:color-mix(in srgb, var(--err) 8%, transparent);border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:11.5px;font-weight:600;transition:background .15s}.pub-app-page .cover-retry-btn:hover{background:color-mix(in srgb, var(--err) 16%, transparent)}.pub-app-page .file-btn,.pub-app-page .ghost-btn{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-tertiary);min-height:34px;color:var(--text-secondary);padding:6px 12px;font-size:12.5px;font-weight:500;transition:border-color .15s,color .15s,background .15s}.pub-app-page .file-btn:hover,.pub-app-page .ghost-btn:hover{border-color:var(--accent-soft-border);color:var(--accent);background:var(--accent-soft)}.pub-app-page .crop-panel{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-tertiary);margin-top:12px;padding:14px}.pub-app-page .crop-panel[hidden]{display:none}.pub-app-page .crop-viewport{aspect-ratio:16/9;border-radius:var(--radius-sm);background:var(--bg-primary);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;position:relative;overflow:hidden}.pub-app-page .crop-viewport.dragging{cursor:grabbing}.pub-app-page .crop-viewport img{transform-origin:0 0;will-change:transform;pointer-events:none;max-width:none;position:absolute;top:0;left:0}.pub-app-page .crop-grid{pointer-events:none;opacity:.45;background-image:linear-gradient(90deg,#ffffff59 1px,#0000 1px),linear-gradient(#ffffff59 1px,#0000 1px);background-size:33.334% 33.334%;position:absolute;inset:0}.pub-app-page .crop-controls{flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;display:flex}.pub-app-page .crop-zoom{color:var(--text-secondary);flex:180px;align-items:center;gap:8px;font-size:12px;display:flex}.pub-app-page .crop-zoom input[type=range]{accent-color:var(--accent);cursor:pointer;flex:1}.pub-app-page .crop-btns{gap:8px;margin-left:auto;display:flex}.pub-app-page .crop-confirm{border-radius:var(--radius-md);background:var(--accent-cta);color:#fff;min-height:40px;padding:8px 16px;font-size:12.5px;font-weight:600;transition:background .15s}.pub-app-page .crop-confirm:hover{background:var(--accent-cta-hover)}.pub-app-page .crop-hint{color:var(--text-muted);margin-top:8px;font-size:11px}.pub-app-page .editor-shell{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-tertiary);overflow:hidden}.pub-app-page .editor-shell:focus-within{border-color:var(--accent)}.pub-app-page .editor-toolbar{border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-wrap:wrap;align-items:center;gap:2px;padding:6px 8px;display:flex}.pub-app-page .tool-btn{border-radius:var(--radius-sm);min-width:40px;height:40px;color:var(--text-secondary);justify-content:center;align-items:center;gap:4px;padding:0 10px;font-size:12.5px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.pub-app-page .tool-btn:hover:not(:disabled){background:var(--bg-tertiary);color:var(--accent)}.pub-app-page .tool-btn:disabled{opacity:.4;cursor:not-allowed}.pub-app-page .tool-btn svg{width:15px;height:15px}.pub-app-page .tool-sep{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 6px}.pub-app-page .editor-tabs{gap:2px;margin-left:auto;display:flex}.pub-app-page .tab-btn{border-radius:var(--radius-sm);height:40px;color:var(--text-muted);padding:0 14px;font-size:12px;font-weight:500;transition:background .15s,color .15s}.pub-app-page .tab-btn:hover{color:var(--text-primary)}.pub-app-page .tab-btn.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.pub-app-page .editor-input{resize:vertical;width:100%;min-height:260px;color:var(--text-primary);font-size:13.5px;line-height:1.8;font-family:var(--font-mono);background:0 0;border:none;outline:none;padding:14px 16px;display:block}.pub-app-page .editor-input::placeholder{color:var(--text-muted)}.pub-app-page .editor-preview{background:var(--bg-secondary);min-height:260px;padding:16px 18px;display:none}.pub-app-page .editor-shell.preview-mode .editor-input{display:none}.pub-app-page .editor-shell.preview-mode .editor-preview{display:block}.pub-app-page .editor-foot{border-top:1px solid var(--border);color:var(--text-muted);font-size:11px;font-family:var(--font-mono);letter-spacing:.2px;justify-content:space-between;align-items:center;gap:10px;padding:6px 10px;display:flex}.pub-app-page .img-list{flex-direction:column;gap:8px;margin-top:10px;display:flex}.pub-app-page .img-item{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-tertiary);align-items:center;gap:10px;padding:8px 10px;display:flex}.pub-app-page .img-thumb{aspect-ratio:16/9;background:linear-gradient(135deg, var(--cover-from), var(--cover-to));border-radius:4px;flex-shrink:0;width:56px;overflow:hidden}.pub-app-page .img-thumb img{object-fit:cover;width:100%;height:100%;display:block}.pub-app-page .img-meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pub-app-page .img-meta>span:first-child{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.pub-app-page .img-status{font-size:11px}.pub-app-page .img-status-uploading{color:var(--text-muted)}.pub-app-page .img-status-failed{color:var(--err)}.pub-app-page .img-item-failed{border-color:color-mix(in srgb, var(--err) 45%, transparent)}.pub-app-page .img-retry{color:var(--err);border:1px solid color-mix(in srgb, var(--err) 45%, transparent);background:color-mix(in srgb, var(--err) 8%, transparent);border-radius:999px;flex-shrink:0;padding:5px 12px;font-size:11.5px;font-weight:600;transition:background .15s}.pub-app-page .img-retry:hover{background:color-mix(in srgb, var(--err) 16%, transparent)}.pub-app-page .img-rm{color:var(--text-secondary);border-radius:var(--radius-sm);flex-shrink:0;align-items:center;min-height:40px;padding:5px 12px;font-size:12px;transition:color .15s,background .15s;display:inline-flex}.pub-app-page .img-rm:hover{color:var(--accent);background:var(--accent-soft)}.pub-app-page .tag-shell{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-tertiary);flex-wrap:wrap;align-items:center;gap:8px;min-height:42px;padding:6px 10px;display:flex;position:relative}.pub-app-page .tag-shell:focus-within{border-color:var(--accent)}.pub-app-page .tag-chips{flex-wrap:wrap;flex:0 auto;align-items:center;gap:6px;min-width:0;display:flex}.pub-app-page .tag-chip{background:var(--accent-soft);border:1px solid var(--accent-soft-border);color:var(--accent);border-radius:9999px;align-items:center;gap:4px;padding:3px 6px 3px 10px;font-size:12.5px;font-weight:500;display:inline-flex}.pub-app-page .tag-chip button{width:18px;height:18px;color:inherit;opacity:.7;border-radius:9px;justify-content:center;align-items:center;display:inline-flex;position:relative}.pub-app-page .tag-chip button:after{content:"";position:absolute;inset:-8px}.pub-app-page .tag-chip button:hover{opacity:1;background:var(--accent-soft)}.pub-app-page .tag-chip svg{width:11px;height:11px}.pub-app-page .tag-input{min-width:90px;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:4px 2px;font-size:13px}.pub-app-page .tag-input::placeholder{color:var(--text-muted)}.pub-app-page .tag-menu{z-index:5;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);max-height:200px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 8px 24px #0000004d}.pub-app-page .tag-menu[hidden]{display:none}.pub-app-page .tag-opt{text-align:left;width:100%;color:var(--text-secondary);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.pub-app-page .tag-opt:hover,.pub-app-page .tag-opt.active{background:var(--accent-soft);color:var(--accent)}.pub-app-page .tag-opt.active{box-shadow:inset 2px 0 0 var(--accent)}.pub-app-page .tag-opt .cnt{font-family:var(--font-mono);color:var(--text-muted);font-size:10.5px}.pub-app-page .tag-count-note{color:var(--text-muted);font-size:11px}.pub-app-page .zip-drop{border:1px dashed var(--border);border-radius:var(--radius-md);background:var(--bg-tertiary);text-align:center;color:var(--text-secondary);padding:20px;font-size:13px;transition:border-color .15s,background .15s}.pub-app-page .zip-drop[hidden]{display:none}.pub-app-page .zip-drop.drag{border-color:var(--accent);background:var(--accent-soft)}.pub-app-page .zip-name{color:var(--text-secondary);font-size:12px;font-family:var(--font-mono);word-break:break-all;overflow-wrap:anywhere;margin-top:8px}.pub-app-page .zip-sdk-note{color:var(--text-muted);margin-top:8px;font-size:11.5px;line-height:1.5}.pub-app-page .zip-sdk-note[hidden]{display:none}.pub-app-page .zip-warn-block{border-radius:var(--radius-sm);border:1px solid color-mix(in srgb, var(--warn) 35%, transparent);background:color-mix(in srgb, var(--warn) 8%, transparent);flex-direction:column;gap:4px;margin-top:8px;padding:10px 12px;display:flex}.pub-app-page .zip-warn-line{color:var(--warn);word-break:break-word;font-size:11.5px;line-height:1.6}.pub-app-page .zip-warn-line.muted{color:var(--text-muted)}.pub-app-page .pkg-summary{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;font-size:12.5px;display:flex}.pub-app-page .pkg-summary[hidden]{display:none}.pub-app-page .pkg-sum-main{flex-direction:column;flex:240px;gap:3px;min-width:0;display:flex}.pub-app-page .pkg-sum-name{font-family:var(--font-mono);color:var(--text-primary);word-break:break-all;overflow-wrap:anywhere;font-size:12.5px}.pub-app-page .pkg-sum-meta{font-family:var(--font-mono);color:var(--text-muted);word-break:break-all;overflow-wrap:anywhere;font-size:11px}.pub-app-page .pkg-verified{color:var(--ok);border:1px solid color-mix(in srgb, var(--ok) 45%, transparent);background:color-mix(in srgb, var(--ok) 8%, transparent);border-radius:9999px;flex-shrink:0;align-items:center;gap:5px;padding:4px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.pub-app-page .pkg-verified svg{width:12px;height:12px}.pub-app-page .zip-flow{margin-top:14px}.pub-app-page .zip-flow[hidden]{display:none}.pub-app-page .v-line{--v-no-c:#8f4530;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-tertiary);min-height:40px;color:var(--text-secondary);align-items:center;gap:10px;padding:0 12px;font-size:12.5px;transition:border-color .2s;display:flex;position:relative;overflow:hidden}html.dark .pub-app-page .v-line{--v-no-c:#e09478}.pub-app-page .v-line.fail{border-color:color-mix(in srgb, var(--err) 45%, transparent)}.pub-app-page .v-line.done{border-color:color-mix(in srgb, var(--ok) 45%, transparent)}.pub-app-page .v-line:after{content:"";height:2px;width:var(--p,0%);background:var(--accent);transition:width .32s,background .2s;position:absolute;bottom:0;left:0}.pub-app-page .v-line.fail:after{background:var(--err)}.pub-app-page .v-line.done:after{background:var(--ok)}.pub-app-page .v-ico{flex-shrink:0;width:14px;height:14px;display:block;position:relative}.pub-app-page .v-ico>*{pointer-events:none;opacity:1;transition:opacity .3s,transform .3s;position:absolute;inset:0;transform:scale(1)}.pub-app-page .v-spin{border:2px solid var(--accent-soft-border);border-top-color:var(--accent);border-radius:50%;animation:.75s linear infinite pubVSpin}.pub-app-page .v-ico svg{stroke-width:2.6px;opacity:0;width:14px;height:14px;transform:scale(.6)}.pub-app-page .v-ico .i-ok{color:var(--ok)}.pub-app-page .v-ico .i-bad{color:var(--err)}.pub-app-page .v-line.ok .v-spin,.pub-app-page .v-line.done .v-spin,.pub-app-page .v-line.fail .v-spin,.pub-app-page .v-line.ready .v-spin{opacity:0;animation-play-state:paused;transform:scale(.6)}.pub-app-page .v-line.ok .i-ok,.pub-app-page .v-line.done .i-ok,.pub-app-page .v-line.fail .i-bad{opacity:1;transform:scale(1)}.pub-app-page .v-line .v-no{min-width:24px;font-family:var(--font-mono);letter-spacing:.3px;color:var(--v-no-c);flex-shrink:0;font-size:10.5px}.pub-app-page .v-line.ok .v-no,.pub-app-page .v-line.done .v-no{color:var(--ok)}.pub-app-page .v-line.fail .v-no{color:var(--err)}.pub-app-page .v-line .v-no:empty{display:none}.pub-app-page .v-line .v-text{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;transition:opacity .26s,transform .26s;overflow:hidden}.pub-app-page .v-line.swap .v-text{opacity:0;transform:translateY(-4px)}.pub-app-page .v-cancel{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:999px;flex-shrink:0;margin-left:2px;padding:4px 9px;font-size:10.5px;line-height:1;transition:color .2s,border-color .2s}.pub-app-page .v-cancel:hover{color:var(--err);border-color:color-mix(in srgb, var(--err) 45%, transparent)}.pub-app-page .v-line.done .v-cancel,.pub-app-page .v-line.fail .v-cancel{display:none}.pub-app-page .v-line.fail .v-text{color:var(--err)}.pub-app-page .v-line .v-prog{font-family:var(--font-mono);color:var(--text-secondary);letter-spacing:.3px;flex-shrink:0;font-size:10.5px}@keyframes pubVSpin{to{transform:rotate(360deg)}}.pub-app-page .page-actions{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:28px;padding-top:20px;display:flex}.pub-app-page .action-note{color:var(--text-muted);flex:260px;min-width:0;font-size:11.5px}.pub-app-page .action-note.ok{color:var(--ok)}.pub-app-page .action-note.fail{color:var(--err)}.pub-app-page .action-btns{flex-shrink:0;gap:10px;display:flex}.pub-app-page .btn-secondary{border-radius:var(--radius-md);border:1px solid var(--border);height:44px;color:var(--text-secondary);background:0 0;padding:0 20px;font-size:13.5px;font-weight:500;transition:background .15s,color .15s}.pub-app-page .btn-secondary:hover{background:var(--bg-tertiary);color:var(--text-primary)}.pub-app-page .btn-primary{border-radius:var(--radius-md);background:var(--accent-cta);color:#fff;align-items:center;gap:8px;height:44px;padding:0 28px;font-size:14px;font-weight:600;transition:background .15s;display:inline-flex}.pub-app-page .btn-primary:hover{background:var(--accent-cta-hover)}.pub-app-page .btn-primary:disabled{opacity:.5;cursor:not-allowed}.pub-app-page .btn-primary svg{width:15px;height:15px}.pub-app-preview-rail{z-index:50;pointer-events:none;width:860px;height:0;position:fixed;top:50%;left:50%;transform:translate(-50%)}.pub-app-preview-rail .preview-fab{pointer-events:auto;white-space:nowrap;background:var(--pub-bg-elevated);border:1px solid var(--pub-border);width:max-content;min-height:44px;color:var(--pub-text-secondary);font-family:var(--pub-font-body);cursor:pointer;border-radius:9999px;align-items:center;gap:8px;margin-left:12px;padding:0 18px;font-size:13.5px;font-weight:600;transition:color .2s,border-color .2s,background .2s,box-shadow .2s;display:inline-flex;position:absolute;top:0;left:100%;transform:translateY(-50%);box-shadow:0 6px 24px #00000047}html.light .pub-app-preview-rail .preview-fab{box-shadow:0 6px 24px #1c191724}.pub-app-preview-rail .preview-fab:hover{color:var(--pub-accent);border-color:var(--pub-accent-soft-border);background:var(--pub-accent-soft);box-shadow:0 8px 30px #00000057}html.light .pub-app-preview-rail .preview-fab:hover{box-shadow:0 8px 30px #1c19172e}.pub-app-preview-rail .preview-fab svg{flex-shrink:0;width:17px;height:17px}@media (width<=1100px){.pub-app-preview-rail{width:auto;inset:auto 0 0 auto;transform:none}.pub-app-preview-rail .preview-fab{top:auto;left:auto;right:calc(20px + env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom));justify-content:center;width:48px;margin-left:0;padding:0;position:fixed;transform:none}.pub-app-preview-rail .preview-fab .fab-label{display:none}}html.dark .pub-app-vars,html.dark .pub-app-page{--pub-bg-primary:#1a1a1a;--pub-bg-secondary:#262626;--pub-bg-tertiary:#2a2a2a;--pub-bg-elevated:#303030;--pub-text-primary:#eae6df;--pub-text-secondary:#a8a29e;--pub-text-muted:#9a948e;--pub-accent:#d4836a;--pub-accent-soft:#d4836a14;--pub-accent-soft-border:#d4836a4d;--pub-border:#333;--pub-ok:#22c55e}html.light .pub-app-vars,html.light .pub-app-page{--pub-bg-primary:#f0eeeb;--pub-bg-secondary:#f5f3f0;--pub-bg-tertiary:#e8e6e3;--pub-bg-elevated:#dfdcd8;--pub-text-primary:#1c1917;--pub-text-secondary:#57534e;--pub-text-muted:#6b6560;--pub-accent:#c4704f;--pub-accent-soft:#c4704f14;--pub-accent-soft-border:#c4704f47;--pub-border:#d6d3d1;--pub-ok:#166534}.pub-app-vars{--pub-font-body:"Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--pub-font-display:"Cormorant Garamond", Georgia, serif;--pub-font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--pub-cover-from:#d4836a;--pub-cover-to:#e09478;--pub-radius-md:8px;--pub-radius-lg:12px;--pub-radius-card:10px;--bg-primary:var(--pub-bg-primary);--bg-secondary:var(--pub-bg-secondary);--bg-tertiary:var(--pub-bg-tertiary);--bg-elevated:var(--pub-bg-elevated);--text-primary:var(--pub-text-primary);--text-secondary:var(--pub-text-secondary);--text-muted:var(--pub-text-muted);--accent:var(--pub-accent);--accent-soft:var(--pub-accent-soft);--accent-soft-border:var(--pub-accent-soft-border);--border:var(--pub-border);--ok:var(--pub-ok);--font-body:var(--pub-font-body);--font-display:var(--pub-font-display);--font-mono:var(--pub-font-mono);--cover-from:var(--pub-cover-from);--cover-to:var(--pub-cover-to);--radius-md:var(--pub-radius-md);--radius-lg:var(--pub-radius-lg);--radius-card:var(--pub-radius-card);font-family:var(--pub-font-body);color:var(--pub-text-primary);line-height:1.6}.pub-app-vars *,.pub-app-vars :before,.pub-app-vars :after{box-sizing:border-box;margin:0;padding:0}.pub-app-vars button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}.pub-app-vars :focus-visible{outline:2px solid var(--pub-accent);outline-offset:2px}.preview-overlay{z-index:200;padding:24px;padding-left:calc(24px + env(safe-area-inset-left));padding-right:calc(24px + env(safe-area-inset-right));padding-bottom:calc(24px + env(safe-area-inset-bottom));backdrop-filter:blur(3px);background:#0000009e;justify-content:center;align-items:center;animation:.18s ease-out pvFade;display:flex;position:fixed;inset:0}html.light .preview-overlay{background:#1c191775}.preview-panel{background:var(--pub-bg-primary);border:1px solid var(--pub-border);border-radius:var(--pub-radius-card);flex-direction:column;width:min(960px,100%);max-height:min(90vh,100%);animation:.2s ease-out pvRise;display:flex;overflow:hidden;box-shadow:0 24px 64px #0000006b}@keyframes pvFade{0%{opacity:0}to{opacity:1}}@keyframes pvRise{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:none}}.preview-bar{border-bottom:1px solid var(--pub-border);background:var(--pub-bg-secondary);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px 12px 20px;display:flex}.preview-eyebrow{font-family:var(--pub-font-mono);letter-spacing:.6px;color:var(--pub-accent);font-size:10px;display:block}.preview-dlg-title{color:var(--pub-text-primary);margin-top:3px;font-size:14px;font-weight:600}.preview-close{border-radius:var(--pub-radius-md);border:1px solid var(--pub-border);width:44px;height:44px;color:var(--pub-text-secondary);flex-shrink:0;justify-content:center;align-items:center;transition:color .2s,background .2s,border-color .2s;display:inline-flex}.preview-close:hover{color:var(--pub-text-primary);background:var(--pub-bg-tertiary);border-color:var(--pub-text-muted)}.preview-close svg{width:17px;height:17px}.preview-scroll{flex:auto;overflow:hidden auto}.preview-stage{max-width:900px;margin:0 auto;padding:24px 24px 32px}.pv-blank{color:var(--pub-text-muted);font-style:italic}@media (width<=640px){.preview-overlay{padding:0}.preview-panel{border:none;border-radius:0;width:100%;max-height:100%}.preview-stage{padding:16px 16px 28px}}.preview-stage .app-info-box{background:var(--pub-bg-secondary);border:1px solid var(--pub-border);border-radius:var(--pub-radius-card);margin-bottom:28px;overflow:hidden}.preview-stage .app-cover{aspect-ratio:16/9;background:linear-gradient(135deg, var(--pub-cover-from), var(--pub-cover-to));width:100%;position:relative;overflow:hidden}.preview-stage .app-cover img{object-fit:cover;width:100%;height:100%;display:block}.preview-stage .app-cover-tint{background:var(--pub-cover-to);opacity:.35;position:absolute;inset:0}.preview-stage .app-cover-tile{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.preview-stage .app-cover-tile .tile-inner{width:84px;height:84px;font-family:var(--pub-font-display);color:#ffffffeb;background:#00000038;border-radius:22px;justify-content:center;align-items:center;font-size:34px;font-weight:700;display:flex}.preview-stage .app-details{padding:28px 32px 32px}.preview-stage .app-title{font-family:var(--pub-font-display);color:var(--pub-text-primary);margin-bottom:16px;font-size:clamp(1.6rem,3vw,2.25rem);font-weight:700;line-height:1.25}.preview-stage .app-tags-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:22px;display:flex}.preview-stage .app-kind-chip{letter-spacing:.2px;color:#ffe4d6;background:#d4836a47;border:1px solid #d4836a8c;border-radius:9999px;align-items:center;gap:5px;padding:4px 12px;font-size:12px;font-weight:700;display:inline-flex}html.light .preview-stage .app-kind-chip{color:var(--pub-accent);background:var(--pub-accent-soft);border-color:var(--pub-accent-soft-border)}.preview-stage .app-kind-chip svg{width:12px;height:12px}.preview-stage .app-tag{color:var(--pub-accent);background:var(--pub-accent-soft);border:1px solid var(--pub-accent-soft-border);border-radius:9999px;padding:4px 14px;font-size:12px;font-weight:500}.preview-stage .app-stats-row{border-bottom:1px solid var(--pub-border);flex-wrap:wrap;gap:28px;margin-bottom:24px;padding-bottom:20px;display:flex}.preview-stage .app-stat{text-align:left}.preview-stage .app-stat-value{color:var(--pub-text-primary);font-size:20px;font-weight:700;font-family:var(--pub-font-display);font-variant-numeric:tabular-nums}.preview-stage .app-stat-label{color:var(--pub-text-muted);margin-top:2px;font-size:12px}.preview-stage .app-synopsis{margin-bottom:26px}.preview-stage .app-synopsis h3{color:var(--pub-text-primary);margin-bottom:10px;font-size:15px;font-weight:600}.preview-stage .app-synopsis p{color:var(--pub-text-secondary);font-size:14px;line-height:1.8}.preview-stage .app-actions{flex-wrap:wrap;gap:12px;display:flex}.preview-stage .btn-use{border-radius:var(--pub-radius-lg);background:var(--pub-accent);color:#fff;align-items:center;gap:8px;padding:13px 32px;font-size:15px;font-weight:600;display:inline-flex}.preview-stage .btn-use svg{width:17px;height:17px}.preview-stage .btn-ghost{border-radius:var(--pub-radius-lg);color:var(--pub-text-secondary);border:1px solid var(--pub-border);background:0 0;align-items:center;gap:8px;padding:13px 24px;font-size:14px;font-weight:500;display:inline-flex}.preview-stage .btn-ghost svg{width:17px;height:17px}.preview-stage .app-actions button[disabled]{cursor:default;opacity:1}.preview-stage .detail-section{margin-bottom:4px}.preview-stage .section-title{color:var(--pub-text-primary);margin-bottom:16px;font-size:16px;font-weight:600}.preview-stage .app-detail-box{background:var(--pub-bg-secondary);border:1px solid var(--pub-border);border-radius:var(--pub-radius-card);padding:24px 28px 28px}@media (width<=640px){.preview-stage .app-detail-box{padding:18px 16px 20px}}@media (width<=720px){.pub-app-page .page{padding:20px 16px 56px}.pub-app-page .form-card{padding:18px 16px 20px}.pub-app-page .cover-row{grid-template-columns:1fr}.pub-app-page .cover-actions{flex-direction:row}.pub-app-page .card-hint{text-align:left;flex-basis:100%;margin-left:0}}