{"name":"Bolus Master — MDI Decision Support","short_name":"Bolus Master","description":"MDI decision support, logging, and retrospective review for people with Type 1 diabetes","start_url":"/","display":"standalone","background_color":"#0a0a0a","theme_color":"#00D9FF","orientation":"portrait-primary","scope":"/","categories":["health","medical"],"screenshots":[{"src":"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 540 720'><defs><linearGradient id='grad' x1='0%' y1='0%' x2='100%' y2='100%'><stop offset='0%' style='stop-color:%2300D9FF;stop-opacity:1' /><stop offset='100%' style='stop-color:%230099CC;stop-opacity:1' /></linearGradient></defs><rect fill='%230a0a0a' width='540' height='720'/><rect fill='url(%23grad)' width='540' height='200'/><text x='270' y='120' font-size='48' font-weight='bold' font-family='sans-serif' fill='white' text-anchor='middle'>Bolus Master</text><text x='270' y='160' font-size='24' font-family='sans-serif' fill='white' text-anchor='middle' opacity='0.8'>Get on Board</text><rect x='40' y='240' width='460' height='140' rx='8' fill='%231a1a1a' stroke='%2300D9FF' stroke-width='2'/><text x='270' y='280' font-size='32' font-weight='bold' font-family='monospace' fill='%2300D9FF' text-anchor='middle'>—</text><text x='270' y='320' font-size='18' font-family='sans-serif' fill='%23999' text-anchor='middle'>mg/dL</text><rect x='40' y='420' width='460' height='100' rx='8' fill='%231a1a1a'/><text x='60' y='450' font-size='16' font-family='sans-serif' fill='%23ccc'>Blood Glucose</text><text x='60' y='480' font-size='14' font-family='monospace' fill='%2300D9FF'>— mg/dL</text><text x='60' y='510' font-size='14' font-family='monospace' fill='%2300D9FF'>Trend: —</text></svg>","sizes":"540x720","type":"image/svg+xml","form_factor":"narrow","purpose":"any"},{"src":"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1280 720'><defs><linearGradient id='grad' x1='0%' y1='0%' x2='100%' y2='100%'><stop offset='0%' style='stop-color:%2300D9FF;stop-opacity:1' /><stop offset='100%' style='stop-color:%230099CC;stop-opacity:1' /></linearGradient></defs><rect fill='%230a0a0a' width='1280' height='720'/><rect fill='url(%23grad)' width='1280' height='150'/><text x='640' y='100' font-size='56' font-weight='bold' font-family='sans-serif' fill='white' text-anchor='middle'>Bolus Master</text><rect x='40' y='180' width='600' height='500' rx='8' fill='%231a1a1a' stroke='%2300D9FF' stroke-width='2'/><text x='340' y='250' font-size='48' font-weight='bold' font-family='monospace' fill='%2300D9FF' text-anchor='middle'>—</text><text x='340' y='310' font-size='20' font-family='sans-serif' fill='%23999' text-anchor='middle'>mg/dL</text><rect x='640' y='180' width='600' height='500' rx='8' fill='%231a1a1a'/><text x='660' y='220' font-size='18' font-family='sans-serif' fill='%23ccc' font-weight='bold'>Settings</text><text x='660' y='270' font-size='14' font-family='sans-serif' fill='%23999'>Connected CGM</text><text x='660' y='300' font-size='14' font-family='sans-serif' fill='%23999'>Connected ✓</text><text x='660' y='360' font-size='14' font-family='sans-serif' fill='%23999'>MDI Decision Support</text><text x='660' y='390' font-size='14' font-family='sans-serif' fill='%23999'>Dark Mode</text></svg>","sizes":"1280x720","type":"image/svg+xml","form_factor":"wide","purpose":"any"}],"icons":[{"src":"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 192 192'><defs><linearGradient id='grad' x1='0%' y1='0%' x2='100%' y2='100%'><stop offset='0%' style='stop-color:%2300D9FF;stop-opacity:1' /><stop offset='100%' style='stop-color:%230099CC;stop-opacity:1' /></linearGradient></defs><rect fill='%230a0a0a' width='192' height='192'/><rect fill='url(%23grad)' width='192' height='192'/><text x='96' y='110' font-size='100' font-weight='bold' font-family='sans-serif' fill='white' text-anchor='middle'>BM</text></svg>","sizes":"192x192","type":"image/svg+xml","purpose":"any"},{"src":"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 192 192'><defs><linearGradient id='grad' x1='0%' y1='0%' x2='100%' y2='100%'><stop offset='0%' style='stop-color:%2300D9FF;stop-opacity:1' /><stop offset='100%' style='stop-color:%230099CC;stop-opacity:1' /></linearGradient></defs><rect fill='url(%23grad)' width='192' height='192' rx='44'/><text x='96' y='110' font-size='100' font-weight='bold' font-family='sans-serif' fill='white' text-anchor='middle'>BM</text></svg>","sizes":"192x192","type":"image/svg+xml","purpose":"maskable"},{"src":"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><linearGradient id='grad' x1='0%' y1='0%' x2='100%' y2='100%'><stop offset='0%' style='stop-color:%2300D9FF;stop-opacity:1' /><stop offset='100%' style='stop-color:%230099CC;stop-opacity:1' /></linearGradient></defs><rect fill='%230a0a0a' width='512' height='512'/><rect fill='url(%23grad)' width='512' height='512'/><text x='256' y='290' font-size='280' font-weight='bold' font-family='sans-serif' fill='white' text-anchor='middle'>BM</text></svg>","sizes":"512x512","type":"image/svg+xml","purpose":"any"}],"shortcuts":[{"name":"Calculator","short_name":"Calculate","description":"Open the insulin bolus calculator","url":"/?shortcut=calculator","icons":[{"src":"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 96'><defs><linearGradient id='grad' x1='0%' y1='0%' x2='100%' y2='100%'><stop offset='0%' style='stop-color:%2300D9FF;stop-opacity:1' /><stop offset='100%' style='stop-color:%230099CC;stop-opacity:1' /></linearGradient></defs><rect fill='url(%23grad)' width='96' height='96' rx='22'/><text x='48' y='56' font-size='50' font-weight='bold' font-family='sans-serif' fill='white' text-anchor='middle'>+</text></svg>","sizes":"96x96","type":"image/svg+xml"}]},{"name":"Settings","short_name":"Settings","description":"Open app settings","url":"/?shortcut=settings","icons":[{"src":"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 96'><defs><linearGradient id='grad' x1='0%' y1='0%' x2='100%' y2='100%'><stop offset='0%' style='stop-color:%2300D9FF;stop-opacity:1' /><stop offset='100%' style='stop-color:%230099CC;stop-opacity:1' /></linearGradient></defs><rect fill='url(%23grad)' width='96' height='96' rx='22'/><circle cx='48' cy='48' r='20' fill='none' stroke='white' stroke-width='4'/><circle cx='48' cy='48' r='8' fill='white'/></svg>","sizes":"96x96","type":"image/svg+xml"}]}]}