/* Folder base rules (formerly launcher-folders.css, the Launcher2 base shared with 5.1.1/4.4.4); the Lollipop launcher's own
   folder rules below override them (portal_container_holo / quantum_panel, the name and cell styles). */
.app-icon.launcher-folder-icon{position:relative;width:54px;height:54px;display:block;background:url(assets/launcher-portal_ring_inner_holo.png) center/contain no-repeat;overflow:visible}
.launcher-folder-icon>.folder-preview-item{position:absolute;display:block;width:34px;height:34px;left:7px;top:13px;z-index:3;transform-origin:0 0}
.launcher-folder-icon>.folder-preview-item:nth-child(2){left:14px;top:9px;transform:scale(.825);z-index:2;filter:brightness(.85)}
.launcher-folder-icon>.folder-preview-item:nth-child(3){left:21px;top:5px;transform:scale(.65);z-index:1;filter:brightness(.7)}
.launcher-folder-icon .folder-preview-item .app-icon{width:100%!important;height:100%!important;background:none;border:0;box-shadow:none;border-radius:0}
.launcher-folder-icon .folder-preview-item img{width:100%;height:100%;object-fit:contain}
.dock .launcher-folder-icon>.folder-preview-item{width:29px;height:29px;left:6px;top:11px}
.dock .launcher-folder-icon>.folder-preview-item:nth-child(2){left:12px;top:8px}
.dock .launcher-folder-icon>.folder-preview-item:nth-child(3){left:18px;top:4px}
.dock .launcher-icon .folder-preview-item,.dock .launcher-icon .folder-preview-item .app-icon{display:block}
.launcher-folder-scrim{position:absolute;inset:var(--sb) 0 var(--nb);z-index:19;background:#0003}
.launcher-folder{position:absolute;z-index:20;max-width:calc(100% - 16px);max-height:calc(100% - 94px);display:flex;flex-direction:column;padding:12px;isolation:isolate;transform-origin:var(--folder-origin,50% 80%);color:#fff}
.launcher-folder:before{content:'';position:absolute;inset:0;z-index:-1;border-style:solid;border-color:transparent;border-width:21px 18px 30px;border-image:url(assets/launcher-portal_container_holo.png) 21 18 30 fill / 21px 18px 30px;pointer-events:none}
.launcher-folder-grid{display:grid;grid-template-columns:repeat(var(--folder-columns),minmax(0,1fr));overflow-y:auto;min-height:0;overscroll-behavior:contain;scrollbar-width:none;touch-action:none}
.launcher-folder-cell{height:82px;min-width:0;display:grid;place-items:center}
.launcher-folder-cell>.launcher-icon{width:100%;height:100%;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:5px 2px}
.launcher-folder-cell .app-icon{width:48px;height:48px;flex:none}
.launcher-folder-cell .launcher-icon>span:last-child{font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.launcher-folder-name{flex:none;margin:0;border-top:1px solid #ffffff10}
.launcher-folder-name input{display:block;width:100%;padding:10px 4px 7px;border:0;border-radius:0;background:transparent;font:14px RobotoICS,Arial,sans-serif;color:#33b5e5;text-align:center;outline:none;user-select:text;-webkit-user-select:text}
.launcher-folder-name input::placeholder{color:#33b5e5;opacity:1}
.launcher-folder-name input:focus{box-shadow:inset 0 -2px #33b5e5}
.folder-drop-target .app-icon:after{content:'';position:absolute;inset:-9px;background:url(assets/launcher-portal_ring_outer_holo.png) center/contain no-repeat;pointer-events:none;animation:folder-target 100ms ease-in-out}
.folder-drop-target .app-icon{position:relative}
.folder-drop-target .folder-preview-item .app-icon:after{display:none}

.drag-source-icon,.drag-source-widget{visibility:hidden}
.screen.dragging .launcher-folder{animation:none}
.screen.dragging .launcher-folder-scrim{background:transparent}
.screen.dragging .drag-remove{z-index:30}

@keyframes folder-target{from{transform:scale(.77)}to{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.launcher-folder,.folder-drop-target .app-icon:after{animation:none}}
/* FolderRingAnimator grows the outer ring by 30% in 100 ms; the closing copy is inert while it fades. */
.launcher-folder-closing{pointer-events:none}
/* KitKat Launcher3 (android-4.4.4_r1) on the Nexus 5: DynamicGrid profile "Nexus 5" (359 x 567 dp, 4 x 4, 60 dp icons,
   13 sp labels, 5 hotseat cells, 56 dp hotseat icons) and DeviceProfile.layout(). The launcher draws under the
   translucent system bars; workspace_bg darkens the top and bottom ~100 dp. 1 dp = 0.906 px.
   Search bar: 12 dp in from the sides and below the status bar, 48 dp tall (search_frame, 4 dp padding).
   Workspace: 60 dp from the top, 108 dp (hotseat 84 dp + page indicator 24 dp) from the bottom, 4 dp from the sides;
   CellLayout splits that evenly (no gaps) into 88 x 99.75 dp cells and centres the 60 dp icon + 4 dp + label. */
@font-face{font-family:RobotoCondensed;src:url('assets/RobotoCondensed-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:RobotoCondensed;src:url('assets/RobotoCondensed-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
.kk-home{position:relative;display:block!important;overflow:hidden!important;background:none!important;padding:0!important}
.kk-home::before{content:'';position:absolute;inset:0;border-style:solid;border-color:transparent;border-width:89.4px 0 90px;border-image:url('assets/l3-workspace_bg.png') 296 0 298 0 fill / 89.4px 0 90px stretch;pointer-events:none}
.kk-home .home-search{position:absolute;left:10.87px;right:10.87px;top:calc(var(--sb) + 10.87px);height:43.49px;margin:0;padding:3.62px;gap:0;border:5.44px solid transparent;border-image:url('assets/l3-search_frame.png') 18 fill / 5.44px stretch;background:none;box-shadow:none;border-radius:0;display:flex;align-items:stretch;z-index:2;transition:opacity .175s}
.kk-home .home-search>button{border:0;background:none;padding:0;margin:0;height:100%;display:flex;align-items:center;min-width:0}
.kk-home .home-search>button:first-child{flex:1;padding-left:7.25px;justify-content:flex-start}
.kk-home .home-search .kk-qsb-logo{height:100%;width:auto;display:block}
.kk-home .home-search .voice-search{flex:0 0 43.49px;padding-right:7.25px;justify-content:flex-end}
.kk-home .home-search .search-microphone{height:100%;width:auto;display:block}
.kk-home .home-search>button:active img{filter:drop-shadow(0 0 4px #33b5e5) brightness(1.2)}
.kk-home .home-content{position:absolute;left:0;right:0;top:calc(var(--sb) + 54.36px);bottom:calc(var(--nb) + 97.85px);padding:0;overflow:visible;display:block;z-index:1}
.kk-home .home-pages{height:100%}
.kk-home .home-grid{padding:0 3.62px;grid-template-rows:repeat(4,minmax(0,1fr))}
.kk-home .home-slot .launcher-icon{justify-content:center;gap:3.62px;padding:0}
.kk-home .launcher-icon .app-icon,.kk-drawer .launcher-icon .app-icon{width:54.36px;height:54.36px;filter:none}
.kk-home .launcher-icon>span:last-child,.kk-drawer .launcher-icon>span:last-child{font:400 11.78px/15.7px RobotoCondensed,'Roboto Condensed',RobotoICS,sans-serif;color:#fff;text-shadow:0 0 2px #000000b0,0 0 2px #000000b0;max-width:calc(100% - 4px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kk-home .launcher-icon:active .app-icon,.kk-drawer .launcher-icon:active .app-icon{transform:none;filter:drop-shadow(0 0 3px #33b5e5) drop-shadow(0 0 2px #33b5e5)}
.kk-home .launcher-icon:hover .app-icon{filter:none}
/* Page indicator: 24 dp row above the hotseat; 16 dp markers, ic_pageindicator_default fades to the larger
   ic_pageindicator_current, which grows from half size (PageIndicatorMarker, 175 ms). The extra empty screen shown
   while dragging uses ic_pageindicator_add. */
.kk-home .page-indicators{position:absolute;left:0;right:0;bottom:calc(var(--nb) + 76.1px);height:21.74px;min-height:0;padding:0;display:flex;justify-content:center;align-items:center;gap:0;z-index:2;transition:opacity .25s}
.kk-home .page-indicators button{position:relative;flex:0 0 14.5px;width:14.5px;height:14.5px;padding:0;border:0;border-radius:0;background:none}
.kk-home .page-indicators button::after{display:none}
.kk-home .page-indicators img{position:absolute;left:50%;top:50%;transition:opacity .175s,transform .175s;pointer-events:none}
.kk-home .page-indicators .kk-pi-off{width:7.85px;height:7.85px;margin:-3.93px 0 0 -3.93px}
.kk-home .page-indicators .kk-pi-on{width:13.29px;height:13.59px;margin:-6.8px 0 0 -6.65px;opacity:0;transform:scale(.5)}
.kk-home .page-indicators button.active .kk-pi-off{opacity:0}
.kk-home .page-indicators button.active .kk-pi-on{opacity:1;transform:none}
/* Hotseat: 84 dp, 12 dp side padding, five 67.2 dp cells; icons are scaled to 56 dp and drawn without labels. */
.kk-home .dock{position:absolute;left:0;right:0;bottom:var(--nb);height:76.1px;min-height:0;margin:0;padding:0 10.87px;border:0;background:none;display:flex;align-items:stretch;z-index:2;transition:opacity .25s}
.kk-home .dock::before{display:none}
.kk-home .dock-slot{flex:1;width:auto;height:100%;min-height:0}
.kk-home .dock .launcher-icon{height:100%;justify-content:center;padding:0}
.kk-home .dock .launcher-icon .app-icon{width:50.74px;height:50.74px}
.kk-home .dock .launcher-icon>span:last-child{display:none}
/* Drop targets take the search bar's place while dragging (search_drop_target_bar). */
.kk-home .drop-target-bar{top:calc(var(--sb) + 10.87px);left:10.87px;right:10.87px;height:43.49px}
.kk-home .drop-target{font:400 14.5px RobotoICS,sans-serif;text-shadow:0 .9px 3.6px #000;gap:6.8px}
.kk-home .drop-target img{width:29px;height:29px}
.screen.dragging .kk-home .home-search{opacity:0}
/* Workspace widgets keep the 8 dp AppWidgetHostView padding inside their cells. */
.kk-home .home-widget{padding:0}
/* Folder icon (FolderIcon.computePreviewItemDrawingParams): portal_ring_inner_holo at 72 dp (icon + 2 x 6 dp edge
   margin, 6 dp above the icon), up to three previews scaled 0.81 / 0.67 / 0.53 and darkened 0 / 16 / 31 %. */
.kk-home .app-icon.launcher-folder-icon,.kk-drawer .app-icon.launcher-folder-icon{position:relative;background:none;overflow:visible}
.kk-home .app-icon.launcher-folder-icon::before{content:'';position:absolute;left:-5.44px;top:-5.44px;width:65.24px;height:65.24px;background:url('assets/l3-portal_ring_inner_holo.png') center/100% 100% no-repeat}
.kk-home .launcher-folder-icon>.folder-preview-item{left:-1.81px;top:12px;width:44.21px;height:44.21px;transform:none;filter:none}
.kk-home .launcher-folder-icon>.folder-preview-item:nth-child(2){left:9.91px;top:7.97px;width:36.48px;height:36.48px;transform:none;filter:brightness(.843)}
.kk-home .launcher-folder-icon>.folder-preview-item:nth-child(3){left:21.63px;top:3.98px;width:28.74px;height:28.74px;transform:none;filter:brightness(.686)}
.kk-home .dock .launcher-folder-icon{transform:scale(.933);transform-origin:50% 50%}
.kk-home .dock .launcher-folder-icon>.folder-preview-item{left:-1.81px;top:12px;width:44.21px;height:44.21px}
.kk-home .dock .launcher-folder-icon>.folder-preview-item:nth-child(2){left:9.91px;top:7.97px;width:36.48px;height:36.48px}
.kk-home .dock .launcher-folder-icon>.folder-preview-item:nth-child(3){left:21.63px;top:3.98px;width:28.74px;height:28.74px}
.kk-home .folder-drop-target .app-icon:after{inset:-14px;background-image:url('assets/l3-portal_ring_outer_holo.png')}
/* Open folder: white portal_container_holo card, #333 labels without shadow, name hint #777 14 sp condensed. */
.screen .launcher-folder{color:#333}
.screen .launcher-folder:before{border-width:13.6px 10.87px 18.12px;border-image:url('assets/l3-portal_container_holo.png') 42 36 60 36 fill / 13.6px 10.87px 18.12px}
.screen .launcher-folder .launcher-folder-cell{height:auto;min-height:0;padding:4.5px 0}
.screen .launcher-folder .launcher-folder-cell .app-icon{width:54.36px;height:54.36px;filter:none}
.screen .launcher-folder .launcher-folder-cell .launcher-icon>span:last-child{font:400 11.78px/15.7px RobotoCondensed,'Roboto Condensed',RobotoICS,sans-serif;color:#333;text-shadow:none}
.screen .launcher-folder .launcher-folder-name{border-top:0}
.screen .launcher-folder .launcher-folder-name input{padding:9.06px 4px;font:400 12.68px RobotoCondensed,'Roboto Condensed',RobotoICS,sans-serif;color:#777}
.screen .launcher-folder .launcher-folder-name input::placeholder{color:#777}
.screen .launcher-folder .launcher-folder-name input:focus{box-shadow:none}
.screen .launcher-folder-scrim{inset:0;background:transparent}
/* All apps (AppsCustomizeTabHost): the tab bar stays gone and the market button is disabled; 65 % black over the
   wallpaper; apps pages of 4 x 5 cells then the widget pages, with one page indicator at the bottom. */
#viewport>.drawer-view.kk-drawer{position:relative;display:block;overflow:hidden;background:#000000a6;padding:var(--sb) 0 var(--nb)}
.kk-drawer .drawer-page{position:absolute;left:0;right:0;top:var(--sb);bottom:calc(var(--nb) + 7.97px);padding:0;display:grid}
.kk-drawer .drawer-apps{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));gap:0}
.kk-drawer .drawer-apps .launcher-icon{gap:3.62px;padding:0;min-width:0}
.kk-drawer .drawer-apps .launcher-icon>span:last-child{font-size:11.78px;max-height:none;white-space:nowrap;text-shadow:0 0 4px #000,0 0 4px #000}
.kk-drawer .drawer-widgets{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));padding:14.5px 7.25px 10px;gap:14.5px 7.25px}
.kk-drawer .drawer-widget{align-items:center;gap:5.44px;color:#fff!important}
.kk-drawer .drawer-widget-preview{order:0;border:0;background:none;flex:1;width:100%}
.kk-drawer .drawer-widget-title{order:1;flex-direction:column;align-items:center;gap:0;font:400 12.68px/1.25 RobotoCondensed,'Roboto Condensed',RobotoICS,sans-serif;text-transform:none;max-width:100%}
.kk-drawer .drawer-widget-title small{font:400 11.78px RobotoCondensed,'Roboto Condensed',RobotoICS,sans-serif;color:#ffffffb3}
.kk-drawer .drawer-indicators{position:absolute;left:0;right:0;bottom:var(--nb);height:21.74px;display:flex;justify-content:center;align-items:center;gap:0}
.kk-drawer .drawer-indicators button{position:relative;flex:0 0 14.5px;width:14.5px;height:14.5px;padding:0;border:0;border-radius:0;background:none}
.kk-drawer .drawer-indicators img{position:absolute;left:50%;top:50%;transition:opacity .175s,transform .175s;pointer-events:none}
.kk-drawer .drawer-indicators .kk-pi-off{width:7.85px;height:7.85px;margin:-3.93px 0 0 -3.93px}
.kk-drawer .drawer-indicators .kk-pi-on{width:13.29px;height:13.59px;margin:-6.8px 0 0 -6.65px;opacity:0;transform:scale(.5)}
.kk-drawer .drawer-indicators button.active .kk-pi-off{opacity:0}
.kk-drawer .drawer-indicators button.active .kk-pi-on{opacity:1;transform:none}
/* Overview mode (Workspace.State.OVERVIEW): the pages shrink to 80 % of the space above the button bar (20 % of the
   height, 80-120 dp), the search bar, page indicator and hotseat fade, each page shows screenpanel; Wallpapers,
   Widgets and Settings sit in the bar (12 sp condensed caps, 4 dp drawable padding). 250 ms. */
.kk-home .home-content,.kk-home .home-grid{transition:transform .25s cubic-bezier(.4,0,.2,1)}
.kk-home.kk-overview .home-search,.kk-home.kk-overview .page-indicators,.kk-home.kk-overview .dock{opacity:0;pointer-events:none}
.kk-home.kk-overview .home-content{transform:translateY(-29.6px)}
/* PagedView.setLayoutScale(0.573): pages keep their 8 dp spacing at the smaller size, so the neighbours show. */
.kk-home.kk-overview .home-grid{transform:translateX(calc(var(--rel,0) * (7.25px - 42.74%))) scale(.5726)}
.kk-home .home-grid::after{content:'';position:absolute;inset:0;border-style:solid;border-color:transparent;border-width:.3px 7.85px 0 1.21px;border-image:url('assets/l3-screenpanel.png') 1 26 0 4 fill / .3px 7.85px 0 1.21px stretch;pointer-events:none;opacity:0;transition:opacity .25s}
.kk-home.kk-overview .home-grid::after{opacity:1}
.kk-home.kk-overview .home-grid>*{pointer-events:none}
.kk-home.kk-overview .home-grid{cursor:pointer}
.kk-home .kk-overview-panel{position:absolute;left:50%;width:148.58px;margin-left:-74.29px;bottom:var(--nb);height:102.74px;display:flex;justify-content:space-between;align-items:flex-start;gap:0;z-index:3;opacity:0;pointer-events:none;transition:opacity .25s}
.kk-home.kk-overview .kk-overview-panel{opacity:1;pointer-events:auto}
.kk-overview-panel button{flex:0 0 auto;min-width:43.49px;margin:0;white-space:nowrap;border:0;background:none;padding:0;color:#fff;display:flex;flex-direction:column;align-items:center;gap:3.62px;font:400 10.87px RobotoCondensed,'Roboto Condensed',RobotoICS,sans-serif;text-transform:uppercase}
.kk-overview-panel button img{width:38.66px;height:38.66px;display:block}
.kk-overview-panel button:active img{content:var(--pressed)}

/* ---- Reorder slides and the widget resize frame (from the 4.3 simulator) ---- */
/* Jelly Bean Launcher2: reorder slides (150 ms), AppWidgetResizeFrame (24dp padding, holo frame and handles). */
.home-grid .launcher-icon,.home-grid .home-widget{transition:transform .15s cubic-bezier(.37,0,.63,1)}
.home-grid .jb-displaced{position:relative;z-index:1}
.home-widget.resizing{z-index:5;overflow:visible}
.jb-resize-frame{position:absolute;inset:-22px;border:40px solid transparent;border-image:url('assets/jb-widget_resize_frame_holo.png') 66 63 63 66 fill / 40px 38px 38px 40px stretch;pointer-events:none;z-index:6}
.jb-resize-handle{position:absolute;width:44px;height:44px;margin:-22px;border:0;padding:0;background:none;display:grid;place-items:center;pointer-events:auto;touch-action:none;cursor:pointer}
.jb-resize-handle img{width:22px;height:22px;object-fit:contain;pointer-events:none}
.jb-resize-left{left:-18px;top:50%}.jb-resize-right{right:-18px;top:50%;margin-right:-22px;margin-left:0}
.jb-resize-top{top:-18px;left:50%}.jb-resize-bottom{bottom:-18px;left:50%;margin-bottom:-22px;margin-top:0}
.jb-resize-left,.jb-resize-right{cursor:ew-resize}.jb-resize-top,.jb-resize-bottom{cursor:ns-resize}
/* DeskClock 4.3 digital clock widget (digital_widget_time): 80dp bold/thin time, 14sp condensed date, grey alarm. */
.home-widget.widget-digitalclock{place-items:stretch;container-type:inline-size}
.jbw-digital{width:100%;height:100%;border:0;background:none;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:0;overflow:hidden}
.jbw-digital:active{background:#33b5e54d}
.jbw-digital-time{display:flex;align-items:baseline;font-size:min(72px,calc(72px * 100cqw / 144px));line-height:1.05;white-space:nowrap;letter-spacing:-.02em}
.jbw-digital-time b{font:700 1em/1 RobotoICS,Roboto,sans-serif}
.jbw-digital-time i{font:normal 1em/1 RobotoThin,RobotoICS,sans-serif}
.jbw-digital-date{display:flex;align-items:center;justify-content:center;gap:7.2px;font:700 12.6px 'Roboto Condensed',RobotoICS,sans-serif;text-transform:uppercase;white-space:nowrap}
.jbw-digital-alarm{display:flex;align-items:center;gap:1.8px;color:#ffffff80}
.jbw-digital-alarm img{width:16px;height:16px;opacity:.5}
.drawer-widget-preview .jbw-digital-time,.drag-ghost .jbw-digital-time{font-size:40px}
/* Launcher2 4.3 search_bar: 40dp bar on the search_frame nine-patch (translucent white, rounded); the global search
   icon on the left and ic_home_voice_search_holo on the right. */
.home-search{height:36px;margin:14px 10px 0;border:5.4px solid transparent;border-image:url('assets/jb-search_frame.png') 9 fill / 5.4px stretch;background:none;box-shadow:none;border-radius:0;padding:0 0 0 4px}
.home-search .google-word{color:#f4f4f4;text-shadow:0 1px 2px #0005}
.home-search .voice-search{width:36px;flex:none;display:grid;place-items:center}
.home-search .search-microphone{width:19.8px;height:28.8px;object-fit:contain}

/* ---- Launcher3 5.1 on the Nexus 6 over the rules above ---- */
/* Google Now Launcher 1.1 (Google app 4.1.29, Launcher3 5.x) on the Nexus 6, laid out by DeviceProfile for the
   "Large Phone" profile (406 x 694 dp): the 386 x 658 dp minimum size snaps to 5 x 5 cells with 5 hotseat cells, and
   the interpolated sizes are 63.7 dp icons, 14.3 sp labels and 56 dp hotseat icons. 1 dp = 0.906 px.
   Search bar: 12 dp below the status bar, 56 dp tall, 4 dp in from the sides (dynamic_grid_search_bar_height,
   desiredWorkspaceLeftRightMargin - default widget padding), holding the white search_bg card with the grey
   ic_searchbox_google wordmark and the #616161 ic_mic_none (search_widget.xml).
   Workspace: 68 dp from the top, 107.7 dp (hotseat 87.7 dp + page indicator 20 dp) from the bottom, 4 dp from the
   sides; CellLayout.calculateCellWidth/Height split it evenly into 80.7 x 96.5 dp cells. Labels: sans-serif-condensed
   white with a 2 px #B0000000 shadow (WorkspaceIcon). The Lollipop launcher draws no scrim under the bars. */
.lp-home.kk-home::before{display:none}
.lp-home .home-search{left:3.62px;right:3.62px;top:calc(var(--sb) + 3.62px);height:57.98px;padding:7.25px;border:0;border-image:none;background:none;align-items:stretch}
.lp-home .home-search::before{content:'';position:absolute;inset:0;border:19.03px solid transparent;border-image:url('assets/gnl-search_bg.png') 84 fill / 19.03px stretch;pointer-events:none}
.lp-home .home-search>button{position:relative;z-index:1}
.lp-home .home-search>button:first-child{padding-left:14.5px}
.lp-home .home-search .lp-qsb-logo{height:20.84px;width:auto;margin-top:2.7px;opacity:.54}
.lp-home .home-search .voice-search{flex:0 0 auto;padding:0 14.5px 0 3.62px}
.lp-home .home-search .lp-qsb-mic{width:21.74px;height:21.74px;display:block;filter:brightness(0) invert(.38)}
.lp-home .home-search>button:active img{filter:none}
.lp-home .home-search .voice-search:active .lp-qsb-mic{filter:brightness(0) invert(.38)}
.lp-home .home-search>button::after{content:'';position:absolute;inset:0;background:#0000001a;opacity:0;transition:opacity .15s;pointer-events:none}
.lp-home .home-search>button:active::after{opacity:1}
.lp-home .home-content{top:calc(var(--sb) + 61.61px);bottom:calc(var(--nb) + 97.59px)}
.lp-home .home-grid{padding:0 3.62px;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr))}
.lp-home .launcher-icon .app-icon,.lp-drawer .launcher-icon .app-icon,.screen .launcher-folder .launcher-folder-cell .app-icon{width:57.72px;height:57.72px;filter:none}
.lp-home .launcher-icon>span:last-child{font:400 12.94px/17.4px RobotoCondensed,'Roboto Condensed',Roboto,sans-serif;color:#fff;text-shadow:0 0 1.8px #000000b0,0 0 1.8px #000000b0}
.lp-home .launcher-icon:active .app-icon,.lp-drawer .launcher-icon:active .app-icon,.screen .launcher-folder .launcher-icon:active .app-icon{filter:brightness(.8)}
/* Page indicator: 20 dp above the hotseat; 16 dp PageIndicatorMarker cells with GNL's white 12 dp markers. */
.lp-home .page-indicators{bottom:calc(var(--nb) + 79.47px);height:18.12px}
.lp-home .page-indicators .kk-pi-off,.lp-drawer .drawer-indicators .kk-pi-off{width:10.87px;height:10.87px;margin:-5.44px 0 0 -5.44px}
.lp-home .page-indicators .kk-pi-on,.lp-drawer .drawer-indicators .kk-pi-on{width:10.87px;height:10.87px;margin:-5.44px 0 0 -5.44px}
/* Hotseat: 87.7 dp (icon + 4 x 6 dp edge margin), 12 dp side padding, five cells; icons at 56 dp, no labels. */
.lp-home .dock{height:79.47px;padding:0 10.87px}
.lp-home .dock .launcher-icon .app-icon{width:50.74px;height:50.74px}
/* Drop targets (search_drop_target_bar): Remove and App info in the search bar's place, 7.5 dp drawable padding. */
.lp-home .drop-target-bar{top:calc(var(--sb) + 10.87px);left:3.62px;right:3.62px;height:50.74px}
.lp-home .drop-target{font:400 14.5px Roboto,sans-serif;text-shadow:0 .9px 3.6px #000;gap:6.8px}
.lp-home .drop-target img{width:29px;height:29px}
/* Folder icon: portal_ring_inner_holo behind up to three previews (FolderIcon, as on KitKat), scaled to the 63.7 dp
   icon plus the 6 dp edge margin on each side. */
.lp-home .app-icon.launcher-folder-icon::before{left:-5.44px;top:-5.44px;width:68.6px;height:70.4px;background-image:url('assets/gnl-portal_ring_inner_holo.png')}
.lp-home .launcher-folder-icon>.folder-preview-item{left:-1.9px;top:12.7px;width:46.94px;height:46.94px}
.lp-home .launcher-folder-icon>.folder-preview-item:nth-child(2){left:10.52px;top:8.46px;width:38.73px;height:38.73px}
.lp-home .launcher-folder-icon>.folder-preview-item:nth-child(3){left:22.96px;top:4.23px;width:30.51px;height:30.51px}
.lp-home .dock .launcher-folder-icon{transform:scale(.879)}
/* Open folder (user_folder.xml): the white quantum_panel, #666 labels without shadow (WorkspaceIcon.Folder), and the
   14 sp condensed #777 name field with 10 dp padding ("Unnamed Folder" hint #808080). */
.screen .lp-folder.launcher-folder{color:#666}
.screen .lp-folder.launcher-folder:before{border-width:9.97px 11.78px 13.29px 11.48px;border-image:url('assets/gnl-quantum_panel.png') 33 39 44 38 fill / 9.97px 11.78px 13.29px 11.48px}
.screen .lp-folder .launcher-folder-cell .launcher-icon>span:last-child{font:400 12.94px/17.4px RobotoCondensed,'Roboto Condensed',Roboto,sans-serif;color:#666;text-shadow:none}
.screen .lp-folder .launcher-folder-name input{padding:9.06px 4px;font:400 12.68px RobotoCondensed,'Roboto Condensed',Roboto,sans-serif;color:#777}
.screen .lp-folder .launcher-folder-name input::placeholder{color:#808080}
/* All apps (AppsCustomizePagedView): each page is a white quantum_panel card over the wallpaper, 5 x 6 cells
   (allAppsNumCols/Rows from the 82 dp cell height plus 18 dp cell padding), #666 labels; the page indicator sits in
   its own 20 dp row below. Widgets use quantum_panel_dark pages of 2 x 3 previews over a #374248 name strip. */
#viewport>.drawer-view.lp-drawer,.transition-layer>.drawer-view.lp-drawer{background:none;padding:0}
.lp-drawer .lp-drawer-panel{position:absolute;left:0;right:0;top:var(--sb);bottom:calc(var(--nb) + 25.64px);border-style:solid;border-color:transparent;border-width:9.97px 11.78px 13.29px 11.48px;border-image:url('assets/gnl-quantum_panel.png') 33 39 44 38 fill / 9.97px 11.78px 13.29px 11.48px}
.lp-drawer.drawer-widgets-open .lp-drawer-panel{border-width:5.44px 7.25px 8.76px 6.95px;border-image:url('assets/gnl-quantum_panel_dark.png') 18 24 29 23 fill / 5.44px 7.25px 8.76px 6.95px}
.lp-drawer .drawer-page{top:calc(var(--sb) + 9.97px);bottom:calc(var(--nb) + 38.93px);left:11.48px;right:11.78px}
.lp-drawer .drawer-apps{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr))}
.lp-drawer .drawer-apps .launcher-icon>span:last-child{font:400 12.94px/17.4px RobotoCondensed,'Roboto Condensed',Roboto,sans-serif;color:#666;text-shadow:none;max-width:calc(100% - 4px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lp-drawer .drawer-widgets{top:calc(var(--sb) + 5.44px);bottom:calc(var(--nb) + 34.4px);left:6.95px;right:7.25px;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));padding:0;gap:0}
.lp-drawer .drawer-widget{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;border:0;background:none;min-height:0}
.lp-drawer .drawer-widget-preview{flex:1;min-height:0;display:grid;place-items:center;padding:28.99px 14.5px 0;border-left:.906px solid #374248;border-right:.906px solid #374248;overflow:hidden}
.lp-drawer .drawer-widget-preview .widget-preview-image{max-width:100%;max-height:100%;object-fit:contain}
.lp-drawer .drawer-widget-title{order:2;display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:7.25px;background:#374248;font:400 10.87px RobotoCondensed,'Roboto Condensed',Roboto,sans-serif;color:#fff;text-shadow:0 0 1.8px #000000b0;text-transform:none;white-space:nowrap}
.lp-drawer .drawer-widget-title small{font:400 10.87px RobotoCondensed,'Roboto Condensed',Roboto,sans-serif;color:#fff}
.lp-drawer .drawer-indicators{bottom:var(--nb);height:18.12px}
/* The reveal (Launcher.showAppsCustomizeHelper, material): the panel starts centred on the all apps button and
   clips in a circle from the button's visual size to the panel's corners while it drifts into place
   (config_appsCustomizeRevealTime 220 ms, LogDecelerateInterpolator); the icons follow 60 ms later. */
.lp-drawer.lp-revealing .lp-drawer-panel{animation:lp-reveal .22s cubic-bezier(.05,.7,.1,1) both}
.lp-drawer.lp-revealing .drawer-page{animation:lp-reveal-items .22s cubic-bezier(.05,.7,.1,1) .06s both}
.lp-drawer.lp-revealing .drawer-indicators{animation:lp-fade .22s both}
@keyframes lp-reveal{from{clip-path:circle(var(--r0,23.5px) at 50% 50%);transform:translate(var(--dx,0),var(--dy,0))}to{clip-path:circle(75% at 50% 50%);transform:none}}
@keyframes lp-reveal-items{from{opacity:0;transform:translateY(var(--dy,0))}to{opacity:1;transform:none}}
@keyframes lp-fade{from{opacity:0}to{opacity:1}}
/* Overview mode: Wallpapers / Widgets / Settings with GNL's white icons, 12 sp condensed caps, 4 dp drawable padding,
   80 dp items with 20 dp spacers (dynamic_grid_overview_bar_item_width / _spacer_width). */
.lp-home .kk-overview-panel{width:253.68px;margin-left:-126.84px}
.lp-home .kk-overview-panel button{width:72.48px;font:400 10.87px RobotoCondensed,'Roboto Condensed',Roboto,sans-serif}
.lp-home .kk-overview-panel button img{width:38.66px;height:38.66px}
@media(prefers-reduced-motion:reduce){.lp-drawer.lp-revealing .lp-drawer-panel,.lp-drawer.lp-revealing .drawer-page,.lp-drawer.lp-revealing .drawer-indicators{animation:none}}
/* Folder.animateOpen (material): a circular reveal from the folder icon's centre (--folder-origin) to the farthest
   corner in 200 ms (LogDecelerateInterpolator(100, 0)); the icons and the name fade in after a 60 ms stagger with
   AccelerateInterpolator(1.5) while the panel drifts the last 7.5 % towards its place. */
.screen .lp-folder.lp-folder-opening{animation:lp-folder-reveal .2s cubic-bezier(.05,.7,.1,1) both}
.screen .lp-folder.lp-folder-opening .launcher-folder-grid,.screen .lp-folder.lp-folder-opening .launcher-folder-name{animation:lp-folder-items .2s cubic-bezier(.55,0,1,.45) .06s both}
@keyframes lp-folder-reveal{from{clip-path:circle(0 at var(--folder-origin,50% 50%))}to{clip-path:circle(150% at var(--folder-origin,50% 50%))}}
@keyframes lp-folder-items{from{opacity:0}to{opacity:1}}
/* Overview mode (Launcher3 5.1 DeviceProfile.getOverviewModeScale): 80 % (config_dynamic_grid_overview_scale_percentage)
   of the page space left above the 120 dp button bar (20 % of the height, clamped to 80..120 dp): 0.611 on the
   Nexus 6; the page centres between the status bar and the bar, neighbours 8 dp apart. */
.lp-home.kk-overview .home-content{transform:translateY(-25px)}
.lp-home.kk-overview .home-grid{transform:translateX(calc(var(--rel,0) * (7.25px - 38.9%))) scale(.611)}
.lp-home .kk-overview-panel{height:108.72px}
/* DeskClock 5.1 digital clock widget: one sans-serif-thin 75sp line, then the 14sp date and the #B3FFFFFF alarm. */
.screen .lpw-digital{justify-content:center;font-family:Roboto,sans-serif}
.lpw-digital .jbw-digital-time,.home-widget .lpw-digital .jbw-digital-time{display:block;font:100 min(67.95px,calc(67.95px * 100cqw / 186.64px))/1 Roboto,sans-serif;letter-spacing:0;margin:0 0 -7.25px}
.lpw-digital .jbw-digital-date,.home-widget .lpw-digital .jbw-digital-date,.home-widget .lpw-digital .jbw-digital-date span{gap:7.25px;font:400 12.68px Roboto,sans-serif;text-transform:none;margin-top:7.25px}
.lpw-digital .jbw-digital-alarm,.home-widget .lpw-digital .jbw-digital-alarm{gap:1.81px;color:#ffffffb3;margin:0}
.lpw-digital .jbw-digital-alarm img,.home-widget .lpw-digital .jbw-digital-alarm img{width:16.31px;height:16.31px;opacity:1}
/* Google Calendar 5.0 widget (ICSWidgets.calendarLP) */
.calw.lpcw{display:flex;flex-direction:column;height:100%;border-radius:1.81px;overflow:hidden;background:#fafafa;box-shadow:0 1.81px 3.62px #0000003d;font-family:Roboto,sans-serif}
.screen .lpcw-header{flex:none;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;height:47.11px;border:0;border-radius:1.81px 1.81px 0 0;padding:1.81px 7.25px 1.81px 7.25px;background:#4285f4;color:#fff;text-align:left}
.screen .lpcw-header:active{background:#325bdc}
.lpcw-header small{font:400 10.87px/1.2 Roboto,sans-serif}
.lpcw-header b{font:400 19.93px/1.15 Roboto,sans-serif}
.lpcw-list{flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;background:#fafafa}
.screen .lpcw-row{display:flex;align-items:stretch;width:100%;border:0;background:none;padding:0;text-align:left;color:#fff}
.lpcw-day{flex:none;width:41.68px;height:36.24px;display:flex;flex-direction:column;justify-content:space-between;padding:1.81px 0 1.81px 7.25px;color:#333}
.lpcw-day b{font:400 19.93px/1 Roboto,sans-serif}
.lpcw-day small{font:400 10.87px/1 Roboto,sans-serif;color:#757575}
.lpcw-day.today b,.lpcw-day.today small{color:#4285f4}
.lpcw-chip{flex:1;min-width:0;height:32.62px;margin:3.62px 7.25px 0 0;border-radius:1.81px;padding:0 7.25px;display:flex;flex-direction:column;justify-content:center}
.lpcw-chip.two{height:50.74px}
.lpcw-row:first-child .lpcw-chip{margin-top:3.62px}
.lpcw-row:active .lpcw-chip{filter:brightness(.9)}
.lpcw-chip strong,.lpcw-chip small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:700 10.87px/1.35 Roboto,sans-serif}
.lpcw-chip small{font-weight:400}
.lpcw-none{flex:1;padding:9.97px 7.25px 3.62px;font:400 10.87px Roboto,sans-serif;color:#777}
.lpcw-gap{height:9.06px}
.lpcw-footer{height:3.62px}
