/* módulo apps */
.ap-lead{margin-bottom:var(--s3);max-width:70ch}
.ap-search{display:flex;gap:var(--s3);align-items:center}
.ap-search .input{flex:1;min-width:0}
.ap-banner{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;padding:12px 16px;border-radius:var(--r-md);border:1px solid #ffd40044;background:#ffd4000f}
.ap-status{flex:1;min-width:200px;font-size:13px}
.ap-prog{padding:var(--s4) var(--s5);border-color:#ffd40055;display:flex;flex-direction:column;gap:8px}
.ap-prog[hidden]{display:none}
.ap-pt{font:700 15px var(--display)}
.ap-ps{color:var(--cyan);font-size:12.5px;font-weight:600}
.ap-cats{display:flex;flex-wrap:wrap;gap:8px}
.ap-cat{--c:var(--cyan);display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:99px;border:1px solid var(--line-2);color:var(--c);font-weight:600;font-size:12.5px;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}
.ap-cat span{color:var(--text)}
.ap-cat:hover{background:#ffffff0c}
.ap-cat:active{transform:scale(.97)}
.ap-cat[aria-pressed=true]{border-color:var(--c);background:#ffffff10}
.ap-cat-ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ap-t-blue{--c:#58b8ff}.ap-t-violet{--c:var(--violet)}.ap-t-green{--c:var(--ok)}.ap-t-rose{--c:var(--bad)}.ap-t-orange{--c:#f5a524}.ap-t-cyan{--c:var(--cyan)}
.ap-host{display:flex;flex-direction:column;gap:var(--s4)}
.ap-gt{font:700 13px var(--body);letter-spacing:.08em;color:var(--c);margin-bottom:var(--s4)}
.ap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--s3)}
.ap-card{display:flex;flex-direction:column;gap:8px;padding:var(--s4);border-radius:var(--r-md);background:#ffffff08;border:1px solid var(--line);transition:border-color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}
.ap-card:hover{border-color:var(--line-2);transform:translateY(-2px)}
.ap-head{display:flex;align-items:center;gap:12px}
.ap-head h3{font:700 14.5px var(--body);min-width:0;overflow-wrap:anywhere}
.ap-logo{width:40px;height:40px;border-radius:10px;background:#ffd88a1c;display:grid;place-items:center;flex:none;color:var(--c);font:700 20px var(--body)}
.ap-logo img{width:30px;height:30px;object-fit:contain}
.ap-desc{color:var(--muted);font-size:12.5px;flex:1}
.ap-meta{font:500 10.5px var(--mono);color:var(--muted);overflow-wrap:anywhere}
.ap-install{align-self:flex-start;margin-top:6px;color:var(--c);border:1px solid var(--line-2)}
.ap-install:disabled{color:var(--muted)}
.ap-install .spinner{width:13px;height:13px}
.ap-pager{display:flex;align-items:center;gap:var(--s4);justify-content:center}
.ap-pagetxt{color:var(--muted);font-size:13px}
@media (max-width:700px){.ap-search{flex-direction:column;align-items:stretch}}

