/* xbl1: XBLUEMAN app launcher (bright blue glass). Scoped to .xbl-* only. */
body.xb{--xbl-blue:#1f5bd8;--xbl-ink:#1b2a44;--xbl-sub:#5a6b86;--xbl-line:rgba(31,91,216,.14)}

/* trigger: direct child of .xb-util, always visible */
html body.xb #xb-top .xb-util>.xbl-trigger,body.xb .xbl-trigger{display:inline-grid!important;place-items:center;flex:none;width:40px;height:40px;min-width:40px;padding:0;margin:0;border:1px solid rgba(255,255,255,.34);border-radius:50%;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;justify-self:end;transition:background .16s ease,transform .16s ease;-webkit-tap-highlight-color:transparent}
html body.xb #xb-top .xbl-trigger:hover{background:rgba(255,255,255,.24)}
html body.xb #xb-top .xbl-trigger:active{transform:scale(.94)}
html body.xb #xb-top .xbl-trigger[aria-expanded="true"]{background:#fff;color:var(--xbl-blue)}
html body.xb #xb-top .xbl-trigger svg{width:22px;height:22px;display:block;fill:currentColor;pointer-events:none}
html body.xb #xb-top .xbl-trigger:focus-visible{outline:2px solid #fff;outline-offset:2px}
body.xb .xbl-trigger .xbl-sr,body.xb .xbl-trigger>span:not([aria-hidden]){position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* desktop grid header: util is a 2-col grid; give trigger its own track */
@media(min-width:768px){html body.xb #xb-top.xb-mast .xb-util:has(>.xbl-trigger){grid-template-columns:minmax(180px,1fr) auto auto!important}}
@media(max-width:767px){
 html body.xb #xb-top .xb-top-in{position:relative}
 html body.xb #xb-top .xb-util{position:static!important}
 html body.xb #xb-top .xb-util>.xbl-trigger{position:static;inset:auto;order:1;width:38px;height:38px;min-width:38px}
 html body.xb:not(.xbd-page) #xb-top .xb-user{order:2}
 /* Discover: light drawer header, trigger becomes blue-on-light */
 html body.xb.xbd-page #xb-top .xbl-trigger{border-color:var(--xbl-line);background:#eef3fd;color:var(--xbl-blue)}
 html body.xb.xbd-page #xb-top .xbl-trigger:focus-visible{outline-color:var(--xbl-blue)}
}

/* dialog shell (top layer) */
dialog.xbl-dialog{position:fixed;inset:0;box-sizing:border-box;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;color:var(--xbl-ink,#1b2a44);overflow:visible;font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif}
dialog.xbl-dialog:not([open]){display:none}
dialog.xbl-dialog::backdrop{background:rgba(120,150,200,.18)}
dialog.xbl-dialog .xbl-panel{position:absolute;top:var(--xbl-top,72px);right:var(--xbl-right,16px);box-sizing:border-box;width:min(372px,calc(100vw - 24px));max-height:calc(100dvh - var(--xbl-top,72px) - 16px);display:flex;flex-direction:column;overflow:hidden;border-radius:24px;border:1px solid rgba(255,255,255,.75);background:linear-gradient(160deg,rgba(250,252,255,.94),rgba(232,241,255,.9));-webkit-backdrop-filter:blur(22px) saturate(1.5);backdrop-filter:blur(22px) saturate(1.5);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 18px 50px rgba(31,72,160,.22),0 2px 8px rgba(31,72,160,.08);transform-origin:top right;animation:xbl-in .2s cubic-bezier(.2,.8,.2,1)}
@keyframes xbl-in{from{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:none}}

/* head */
dialog.xbl-dialog .xbl-head{flex:none;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 18px 4px 22px}
dialog.xbl-dialog .xbl-eyebrow{margin:0 0 2px;font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--xbl-blue,#1f5bd8)}
dialog.xbl-dialog #xbl-title{margin:0;font-size:19px;line-height:1.3;font-weight:650;color:var(--xbl-ink,#1b2a44)}
dialog.xbl-dialog .xbl-close{flex:none;width:40px;height:40px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:rgba(31,91,216,.08);color:#2c3e5f;font-size:24px;line-height:1;cursor:pointer;transition:background .15s}
dialog.xbl-dialog .xbl-close:hover{background:rgba(31,91,216,.16)}
dialog.xbl-dialog .xbl-caption{flex:none;margin:0;padding:0 22px 10px;font-size:13px;color:var(--xbl-sub,#5a6b86)}

/* scrolling middle: grids + divider */
dialog.xbl-dialog .xbl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px 12px;margin:0}
dialog.xbl-dialog .xbl-panel>.xbl-grid:first-of-type{padding-top:6px}
dialog.xbl-dialog .xbl-grid,dialog.xbl-dialog .xbl-divider{flex:none}
dialog.xbl-dialog .xbl-panel{overflow-y:hidden}
dialog.xbl-dialog .xbl-scroll,dialog.xbl-dialog .xbl-panel{scrollbar-width:thin;scrollbar-color:rgba(31,91,216,.3) transparent}
/* make the area between caption and foot scroll: panel scrolls, head/foot sticky */
dialog.xbl-dialog .xbl-panel{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
dialog.xbl-dialog .xbl-head{position:sticky;top:0;z-index:2;background:linear-gradient(rgba(250,252,255,.97) 80%,rgba(250,252,255,0))}
dialog.xbl-dialog .xbl-foot{position:sticky;bottom:0;z-index:2}

dialog.xbl-dialog .xbl-app{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:7px;min-height:92px;padding:12px 4px 10px;border-radius:16px;text-decoration:none;color:var(--xbl-ink,#1b2a44);text-align:center;transition:background .15s,transform .15s;-webkit-tap-highlight-color:transparent}
dialog.xbl-dialog .xbl-app:hover{background:rgba(31,91,216,.08)}
dialog.xbl-dialog .xbl-app:active{transform:scale(.96)}
dialog.xbl-dialog .xbl-app:focus-visible,dialog.xbl-dialog .xbl-close:focus-visible,dialog.xbl-dialog .xbl-install:focus-visible{outline:2px solid var(--xbl-blue,#1f5bd8);outline-offset:2px}
dialog.xbl-dialog .xbl-app[aria-current]{background:rgba(31,91,216,.1)}
dialog.xbl-dialog .xbl-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:0;background:none;box-shadow:none;transition:transform .18s}
dialog.xbl-dialog .xbl-app:hover .xbl-icon{transform:translateY(-2px)}
dialog.xbl-dialog .xbl-icon svg{width:40px;height:40px;display:block;fill:none;stroke:none;overflow:visible}
dialog.xbl-dialog .xbl-label{max-width:100%;font-size:13px;line-height:1.35;font-weight:500;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

dialog.xbl-dialog .xbl-divider{height:1px;margin:8px 22px;background:linear-gradient(90deg,transparent,var(--xbl-line,rgba(31,91,216,.14)) 15%,var(--xbl-line,rgba(31,91,216,.14)) 85%,transparent)}
dialog.xbl-dialog .xbl-more .xbl-app{min-height:80px;padding:10px 4px 8px}
dialog.xbl-dialog .xbl-more .xbl-icon{width:40px;height:40px;border-radius:0}
dialog.xbl-dialog .xbl-more .xbl-icon svg{width:34px;height:34px}
dialog.xbl-dialog .xbl-more .xbl-label{font-size:12.5px;color:#34465f}

/* Grouped destinations stay inside the existing modal's scroll container. */
dialog.xbl-dialog .xbl-group{flex:none;min-width:0;margin:0 12px;padding:10px 0 8px}
dialog.xbl-dialog .xbl-group+.xbl-group{border-top:1px solid var(--xbl-line,rgba(31,91,216,.14))}
dialog.xbl-dialog .xbl-group-title{margin:0;padding:0 10px 4px;color:var(--xbl-blue,#1f5bd8);font-size:14px;line-height:1.5;font-weight:650;letter-spacing:.04em}
dialog.xbl-dialog .xbl-group>.xbl-grid{padding:4px 0}
dialog.xbl-dialog .xbl-group .xbl-app{min-width:0}
dialog.xbl-dialog .xbl-panel{scroll-padding-top:80px;scroll-padding-bottom:110px}
@media(max-width:767px){dialog.xbl-dialog .xbl-panel{scroll-padding-bottom:20px}}

/* foot */
dialog.xbl-dialog .xbl-foot{flex:none;display:flex;flex-direction:column;align-items:stretch;gap:6px;margin-top:8px;padding:12px 18px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--xbl-line,rgba(31,91,216,.14));background:rgba(240,246,255,.96)}
dialog.xbl-dialog .xbl-install{min-height:46px;padding:0 18px;border:0;border-radius:999px;background:var(--xbl-blue,#1f5bd8);color:#fff;font:inherit;font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 6px 16px rgba(31,91,216,.26);transition:background .15s,transform .15s}
dialog.xbl-dialog .xbl-install:hover{background:#1748b0}
dialog.xbl-dialog .xbl-install:active{transform:scale(.98)}
dialog.xbl-dialog .xbl-install[hidden]{display:none}
dialog.xbl-dialog .xbl-footnote{text-align:center;font-size:12px;color:var(--xbl-sub,#5a6b86)}

/* mobile: panel bounded by visual viewport + safe areas, whole panel scrolls */
@media(max-width:767px){
 dialog.xbl-dialog .xbl-panel{top:max(10px,env(safe-area-inset-top,0px));right:max(10px,env(safe-area-inset-right,0px));left:max(10px,env(safe-area-inset-left,0px));width:auto;max-height:calc(var(--xbl-vh,100dvh) - max(10px,env(safe-area-inset-top,0px)) - max(10px,env(safe-area-inset-bottom,0px)));border-radius:22px}
 dialog.xbl-dialog .xbl-foot{position:static}
 dialog.xbl-dialog .xbl-grid{padding:4px 8px}
 dialog.xbl-dialog .xbl-app{min-height:88px}
}
@media(max-width:767px) and (max-height:520px){dialog.xbl-dialog .xbl-head{position:static}}

@media(prefers-reduced-motion:reduce){dialog.xbl-dialog .xbl-panel{animation:none}dialog.xbl-dialog *,body.xb .xbl-trigger{transition:none!important}}
@media(prefers-reduced-transparency:reduce){dialog.xbl-dialog .xbl-panel{background:#f5f8fe;-webkit-backdrop-filter:none;backdrop-filter:none}}
@media(forced-colors:active){dialog.xbl-dialog .xbl-panel{border-color:CanvasText;background:Canvas}body.xb .xbl-trigger{border-color:ButtonText}}
body.xb.xbl-open{overflow:hidden}
.xbl-discover-tools{display:contents}
html body.xb .xbl-discover-tools>.xbl-trigger{display:none!important}
@media(max-width:767px){
 .xbl-discover-tools{display:flex;align-items:center;gap:3px;margin-left:auto}
 html body.xb .xbl-discover-tools>.xbl-trigger{display:inline-grid!important;width:36px;height:36px;min-width:36px;background:#edf3ff;color:#235ad4;border-color:#dbe5f8}
 .xbl-discover-tools .xbda-find{position:static!important;margin:0!important}
 html body.xb .xbl-discover-tools .xbl-trigger svg{width:22px;height:22px;fill:currentColor;pointer-events:none}
 .xbl-has-tools{grid-template-columns:40px minmax(0,1fr) 82px!important}
}
