.app-detail-header{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:2rem 1.5rem;max-width:var(--max-width);margin:0 auto}.app-detail-header img{width:80px;height:80px;object-fit:contain;flex-shrink:0}.app-detail-header div{flex:1 1 200px;min-width:0}.app-detail-header h1{font-size:1.75rem;font-weight:800;margin-bottom:.25rem;overflow-wrap:anywhere}.app-detail-header .app-meta{font-size:.875rem;color:var(--color-text-muted)}.app-detail-header .app-meta a{color:var(--color-accent)}.install-btn{flex-shrink:0;padding:.5rem 1.25rem;background:var(--color-accent);color:#fff;font-size:.875rem;font-weight:600;border:none;border-radius:var(--radius);text-decoration:none;transition:background .15s}.install-btn:hover{background:var(--color-accent-hover);text-decoration:none;color:#fff}.install-btn:focus{outline:none;box-shadow:0 0 0 2px var(--color-border),0 0 0 4px #58a6ff66}.app-body-content{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem 2.5rem;line-height:1.7;font-size:.9375rem;color:var(--color-text-muted)}.app-body-content p{margin-bottom:.75rem;overflow-wrap:anywhere}.app-body-content a{overflow-wrap:anywhere}.app-body-content ul,.app-body-content ol{margin:0 0 .75rem 1.25rem}.app-body-content li{margin-bottom:.25rem}.app-body-content img{max-width:100%;height:auto;display:block;margin:1rem auto}.app-body-content table{border-collapse:collapse;margin:1rem auto}.app-body-content table td{padding:4px;text-align:center}.app-body-content table img{margin:0}.app-body-content pre{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem 1rem;margin:.5rem 0;overflow-x:auto;font-family:SF Mono,Cascadia Code,Fira Code,Consolas,monospace;font-size:.8125rem;line-height:1.5;color:var(--color-text)}.app-body-content code{background:var(--color-bg);border:1px solid var(--color-border);border-radius:3px;padding:.125rem .375rem;font-family:SF Mono,Cascadia Code,Fira Code,Consolas,monospace;font-size:.8125rem;color:var(--color-accent)}.app-body-content pre code{background:none;border:none;padding:0;color:var(--color-text)}.gallery{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem 2rem;text-align:center}.gallery h2{font-size:1.125rem;font-weight:700;margin-bottom:.75rem;text-align:left}.gallery-inner{position:relative;display:flex;align-items:center;justify-content:center;gap:.5rem;height:480px;overflow:hidden}@media (max-width: 768px){.gallery{padding-bottom:1rem}.gallery-inner{height:auto;min-height:0}.gallery-inner img{max-height:320px}.gallery-dot{width:48px;height:48px}}.gallery-inner img{max-width:100%;max-height:480px;border-radius:var(--radius);border:1px solid var(--color-border);object-fit:contain;flex:1;opacity:1;transform:translate(0);transition:opacity .16s ease,transform .16s ease;will-change:opacity,transform;min-width:0}@media (prefers-reduced-motion: reduce){.gallery-inner img{transition:none!important}}.gallery-inner img.gal-transition{opacity:0}.gallery-inner img.gal-transition.gal-next{transform:translate(10px)}.gallery-inner img.gal-transition.gal-prev{transform:translate(-10px)}.gallery-btn{flex-shrink:0;width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:50%;color:var(--color-text-muted);font-size:.875rem;line-height:1;cursor:pointer;transition:border-color .15s,color .15s;user-select:none;margin-right:4px;margin-left:4px}.gallery-btn:focus{outline:none;box-shadow:0 0 0 2px var(--color-border),0 0 0 4px #58a6ff66;border-color:var(--color-accent)}.gallery-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-surface)}.gallery-btn:disabled{opacity:.3;cursor:default;border-color:var(--color-border)}.gallery-dots{display:flex;justify-content:center;gap:8px;margin-top:1rem}.gallery-dot{width:.75rem;height:.75rem;border-radius:50%;border:1px solid var(--color-border);background:transparent;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}.gallery-dot:focus{outline:none;box-shadow:0 0 0 2px var(--color-border),0 0 0 4px #58a6ff66}.gallery-dot.active{background:var(--color-accent);border-color:var(--color-accent)}.app-links-section{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem 2.5rem}.app-links-section h2{font-size:1.125rem;font-weight:700;margin-bottom:.75rem}.app-links-section ul{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}.app-links-section li a{display:inline-block;max-width:100%;padding:.375rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.8125rem;font-weight:500;overflow-wrap:anywhere;transition:border-color .15s,background .15s}.app-links-section li a:hover{border-color:var(--color-accent);background:var(--color-surface);text-decoration:none}.app-links-section li a:focus{outline:none;box-shadow:0 0 0 2px var(--color-border),0 0 0 3px #58a6ff66;border-color:var(--color-accent);background:var(--color-surface)}.button-list{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}.app-button{display:inline-block;padding:.5rem 1.25rem;background:var(--color-accent);color:#fff;font-size:.875rem;font-weight:600;border:none;border-radius:var(--radius);text-decoration:none;transition:background .15s}.app-button:hover{background:var(--color-accent-hover);text-decoration:none;color:#fff}.app-button:focus{outline:none;box-shadow:0 0 0 2px var(--color-border),0 0 0 4px #58a6ff66;border-color:var(--color-accent)}#back-link{display:inline-block;margin:1rem 1.5rem 0;max-width:var(--max-width);width:calc(100% - 3rem);font-size:.875rem;color:var(--color-text-muted)}#back-link:hover{color:var(--color-accent)}#back-link:focus{text-decoration:underline;text-underline-offset:2px;outline:none}.error-box{text-align:center;padding:4rem 1.5rem;color:var(--color-text-muted)}.error-box h2{color:var(--color-text);margin-bottom:.5rem}
