/* Xcojo apps menu */
.xco-apps { position: relative; display: inline-flex; }
.xco-apps-corner { position: fixed; z-index: 900; top: max(14px, env(safe-area-inset-top)); right: max(14px, env(safe-area-inset-right)); }
.xco-apps-btn { width: 44px; height: 44px; display: inline-grid; place-items: center; border: 1px solid var(--xm-hair, rgba(15,23,42,.1)); border-radius: 14px; background: var(--xm-card-strong, rgba(255,255,255,.86)); color: var(--xco-ink, #15191B); cursor: pointer; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); transition: transform .15s ease, background .15s ease; }
.xco-apps-btn:hover, .xco-apps-btn[aria-expanded="true"] { background: color-mix(in srgb, var(--xco-accent, #0F8B8D) 14%, var(--xm-card-strong, #fff)); }
.xco-apps-btn:active { transform: scale(.95); }
.xco-apps-btn:focus-visible { outline: 3px solid color-mix(in srgb, var(--xco-accent, #0F8B8D) 55%, transparent); outline-offset: 2px; }
.xco-apps-btn .xco-i { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.xco-apps-panel { position: absolute; z-index: 950; top: calc(100% + 10px); right: 0; width: min(380px, calc(100vw - 24px)); max-height: min(78vh, 640px); display: flex; flex-direction: column; padding: 10px; border-radius: 24px; background: var(--xm-card-strong, rgba(255,255,255,.94)); border: 1px solid var(--xm-hair, rgba(15,23,42,.1)); box-shadow: 0 24px 60px -18px rgba(16,24,40,.35); backdrop-filter: blur(26px) saturate(1.4); -webkit-backdrop-filter: blur(26px) saturate(1.4); transform-origin: top right; animation: xco-apps-pop .18s cubic-bezier(.2,.8,.2,1) both; text-align: left; }
.xco-apps-panel[hidden] { display: none; }
.xco-apps-search { padding: 2px 2px 8px; }
.xco-apps-search input { width: 100%; padding: 10px 14px; border-radius: 14px; border: 1px solid var(--xm-hair-strong, rgba(15,23,42,.14)); background: var(--xm-field, #fff); color: inherit; font: inherit; font-size: .92rem; }
.xco-apps-search input:focus { outline: none; box-shadow: var(--xm-ring, 0 0 0 4px rgba(15,139,141,.2)); }
.xco-apps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; overflow: auto; overscroll-behavior: contain; padding: 2px; }
.xco-apps-grid a { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 12px 4px 10px; border-radius: 16px; color: var(--xco-ink, #15191B); text-decoration: none; text-align: center; transition: background .15s ease, transform .15s ease; }
.xco-apps-grid a:hover, .xco-apps-grid a:focus-visible { background: color-mix(in srgb, var(--xco-accent, #0F8B8D) 11%, transparent); outline: none; transform: translateY(-1px); }
.xco-apps-grid a[aria-current] { background: color-mix(in srgb, var(--xco-accent, #0F8B8D) 16%, transparent); }
.xco-apps-grid a[hidden] { display: none; }
.xco-app-icon { width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 4px 10px -4px rgba(0,0,0,.35); }
.xco-app-icon .xco-i { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.xco-app-name { font-size: .86rem; font-weight: 600; line-height: 1.2; }
.xco-app-tag { font-size: .68rem; line-height: 1.2; color: var(--xco-ink-soft, #5C676B); }
.xco-apps-empty { margin: 14px 8px; text-align: center; color: var(--xco-ink-soft, #5C676B); }
.xco-apps-foot { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 6px; padding: 11px; border-radius: 14px; color: var(--xco-accent, #0F8B8D); font-weight: 600; font-size: .9rem; text-decoration: none; border-top: 1px solid var(--xm-hair, rgba(15,23,42,.08)); }
.xco-apps-foot:hover { background: color-mix(in srgb, var(--xco-accent, #0F8B8D) 10%, transparent); }
.xco-apps-foot .xco-i { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; }
@media (max-width: 560px) { .xco-apps-panel { position: fixed; top: calc(max(14px, env(safe-area-inset-top)) + 54px); left: 12px; right: 12px; width: auto; } }
@keyframes xco-apps-pop { from { opacity: 0; transform: translateY(-6px) scale(.97); } }
@media (prefers-reduced-motion: reduce) { .xco-apps-panel { animation: none; } }
