/* Cream ceramic surfaces, forest green accents, and quiet dimensional lighting. */
.home-shell{--home-cream:#fafbf6;--home-ink:#123e2e;background:var(--home-cream)}
.home-shell .home-masthead{position:relative;padding:20px 22px 46px;background:radial-gradient(ellipse at 95% 15%,#14735480,transparent 65%),linear-gradient(120deg,#194e3e,#07553c 75%);border-radius:0;color:#fffef1}
.home-shell .home-brand{height:35px}
.home-shell .home-brand img{width:35px;height:35px;filter:drop-shadow(0 3px 3px #052e2350)}
.home-shell .topfeatures{margin-top:20px;gap:8px}
.home-shell .topfeature{min-height:72px;gap:9px;border-radius:14px}
.home-shell .topfeature svg{width:30px;height:30px;stroke:#f2f7d9;stroke-width:1.5;filter:drop-shadow(0 2px 1px #022d2490) drop-shadow(0 -1px 0 #ffffff28)}
.home-shell .topfeature span{font-size:15px;font-weight:400;line-height:1.35}
.home-shell .home-content{position:relative;margin-top:-26px;padding:16px 16px 24px;background:linear-gradient(145deg,#fffefb,#f7f9f2 65%,#fafbf7);border-radius:28px 28px 0 0;min-height:calc(100dvh - 265px)}
.home-shell .banner-window{border-radius:21px;box-shadow:0 8px 13px -8px #4d603f5e,0 2px 4px #66734b14}
.home-shell .home-ad .banner{padding:20px;min-height:112px;aspect-ratio:3.35;background:linear-gradient(115deg,#eff6dc,#e2edc9);border-radius:21px;border:1px solid #ffffffe0;box-shadow:inset 0 2px 3px #fff, inset 0 -2px 5px #becd9840;color:var(--home-ink)}
.home-shell .home-ad .banner h2{font-size:clamp(18px,4.7vw,23px);line-height:1.3;letter-spacing:0;margin:0 0 9px;font-weight:700}
.home-shell .home-ad .banner p{display:block;font-size:14px;line-height:1.55;max-width:none}
.home-shell .home-ad .banner>div:first-of-type{max-width:calc(100% - 76px)}
.home-shell .home-ad .banneraccent{width:82px;height:82px;right:8px;top:50%;transform:translateY(-50%);color:#71914e;filter:drop-shadow(0 5px 4px #49613030)}
.home-shell .home-ad .banneraccent svg{width:100%;height:100%;stroke-width:1.2}
.home-shell .home-ad .banner.custom{padding:16px;aspect-ratio:4/1;min-height:0;background:#194d32;color:white;box-shadow:none}
.home-shell .home-ad .banner.custom:after{background:linear-gradient(90deg,#052719bd,transparent)}
.home-shell .home-ad .dots{height:30px;margin:0 0 9px;gap:0}
.home-shell .home-ad .dots button{width:30px;height:30px}
.home-shell .home-ad .dots button:before{width:5px;height:5px;background:#b9c6aa}
.home-shell .home-ad .dots button.active:before{width:17px;background:#397349}
.home-shell .home-task-panel{border:1px solid #fff;border-radius:24px;padding:18px 12px 8px;background:linear-gradient(140deg,#fff,#fdfef9);box-shadow:0 9px 17px -12px #53634875,0 2px 5px #5a69400b,inset 0 1px 1px #fff}
.home-shell .home-activity-pages{scrollbar-width:none}
.home-shell .home-activity-pages>.home-task-grid{grid-template-rows:repeat(2,minmax(124px,auto));gap:10px 6px!important;padding:0 2px}
.home-shell .home-task{gap:9px;padding:8px 2px!important}
.home-shell .home-task .taskicon{width:clamp(48px,14vw,61px)!important;height:clamp(48px,14vw,61px)!important;border-radius:17px;background:linear-gradient(145deg,#fffffa,#edf0e3);border:1px solid #fdfef8;box-shadow:inset 2px 2px 4px #fff,inset -2px -3px 4px #c9cfbd55,0 4px 5px -2px #67765b45,0 9px 12px -8px #6c78584d;color:#4d8546;margin-bottom:0}
.home-shell .home-task .taskicon>svg{width:32px!important;height:32px!important;stroke-width:1.8;filter:drop-shadow(0 1px 0 #2c602ce0) drop-shadow(0 -1px 0 #ebf7d7) drop-shadow(1px 2px 1px #3e653638)}
.home-shell .home-task .taskicon .task-icon-image{border-radius:16px}
.home-shell .home-task-title{font-size:14px!important;font-weight:400;line-height:1.45;height:2.9em;max-height:2.9em;min-height:2.9em;color:#19382c}
.home-shell .home-points-badge{background:linear-gradient(145deg,#82ad60,#3d793e);color:#fff;top:-8px;right:-8px;padding:3px 5px;min-width:24px;border-radius:11px;border:1.5px solid #f9fff0;font-size:11px;box-shadow:0 2px 3px #294c2833;font-weight:500}
.home-shell .home-activity-dots{margin-top:5px}
.home-shell .home-activity-dots button{height:28px;width:28px}
.home-shell .home-activity-dots button span{background:#c9d5bc}
.home-shell .home-activity-dots button[aria-current=true] span{background:#609345}
.home-shell .home-content .services{padding:28px 0 20px;gap:8px}
.home-shell .home-content .service{gap:9px;border-radius:16px;min-height:96px}
.home-shell .home-content .service .shortcut-3d{width:clamp(58px,17vw,78px);height:clamp(58px,17vw,78px);filter:drop-shadow(0 6px 5px #58704024)}
.home-shell .home-content .service>span{font-size:15px;font-weight:400;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
/* One common dock. Existing navigation visibility and badge behavior stay intact. */
.shell .bottomnav{width:min(456px,calc(100% - 20px));bottom:8px;border:1px solid #fffffff5;border-radius:25px;background:linear-gradient(145deg,#fffefb,#f8faf4);box-shadow:0 7px 17px -7px #354a3940,0 -1px 2px #fff,inset 0 1px 3px #fff;backdrop-filter:none;min-height:76px;padding:0;overflow:visible}
.shell .bottomnav button{min-height:76px;padding:10px 2px calc(10px + env(safe-area-inset-bottom));gap:5px;border-radius:21px;color:#516951;font-size:14px;font-weight:400;transition:color .12s ease}
.shell .bottomnav svg.nav-relief-icon{width:27px;height:27px;stroke-width:.65;filter:drop-shadow(0 1px 0 #eaf0dc) drop-shadow(1px 3px 2px #2c4f332c)}
.shell .bottomnav .active{color:#154b30;font-weight:600}
.shell .bottomnav .active .nav-light{stop-color:#75a16e}
.shell .bottomnav .active .nav-dark{stop-color:#125737}
.shell .bottomnav .polish-nav-count{z-index:1;top:4px;left:calc(50% + 6px);box-shadow:0 0 0 2px #fcfdf7;font-size:11px}
.shell .bottomnav button:active{background:#e8efdf}
.shell .bottomnav button:focus-visible{outline:2px solid #397349;outline-offset:-4px}
.shell:not(.chat-shell){padding-bottom:calc(106px + env(safe-area-inset-bottom))}
.home-screen-mode .shell .bottomnav button{padding-bottom:calc(10px + max(28px,env(safe-area-inset-bottom)))}
.home-shell .topfeature:active{background:#ffffff12}
.home-shell .home-task:active .taskicon{box-shadow:inset 1px 2px 5px #a6b49c77,inset -1px -1px 2px #fff}
.home-shell .service:active{background:#edf2e580}
@media(max-width:649px){.home-shell{width:100%;max-width:none;margin:0;border-radius:0;box-shadow:none}.home-shell .home-masthead{padding-top:calc(18px + env(safe-area-inset-top))}.home-shell .bottomnav{width:calc(100% - 20px)}}
@media(max-width:360px){.home-shell .home-content{padding-inline:12px}.home-shell .home-ad .banner{padding:15px}.home-shell .home-ad .banner>div:first-of-type{max-width:calc(100% - 62px)}.home-shell .home-ad .banneraccent{width:68px;height:68px;right:4px}.home-shell .home-task-panel{padding-inline:7px}.home-shell .home-task-title{font-size:13px!important}.home-shell .topfeature span{font-size:14px}}

.home-shell .home-ad .banneraccent.ivory-gift{background:url("/assets/home-ivory-gift-v1.png") center/contain no-repeat;filter:none}.home-shell .home-ad .banneraccent.ivory-gift svg{visibility:hidden}
/* Keep all eight activity slots while avoiding unnecessary empty row height. */
.home-shell .home-activity-pages>.home-task-grid{grid-template-rows:repeat(2,minmax(104px,auto))}
.home-shell .home-activity-pages .home-task-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal!important;overflow-wrap:anywhere;width:100%}

/* Fit the home surface to the viewport; dialogs retain their own scrolling. */
html:has(.home-shell),body:has(.home-shell){height:100%;overflow:hidden;overscroll-behavior-y:none}
.shell.home-shell{height:100dvh;min-height:0;max-height:100dvh;margin:0 auto;border-radius:0;display:flex;flex-direction:column;padding-bottom:calc(92px + env(safe-area-inset-bottom));overflow:hidden}
.home-shell .home-masthead{flex:none;padding:calc(10px + env(safe-area-inset-top)) 18px 30px}
.home-shell .topfeatures{margin-top:0}
.home-shell .topfeature{min-height:58px;gap:6px}
.home-shell .home-content{flex:1;min-height:0;margin-top:-20px;padding:12px 16px 6px;display:flex;flex-direction:column;gap:8px}
.home-shell .home-ad{flex:none;min-height:0}
.home-shell .home-ad .banner{min-height:0;height:clamp(86px,16dvh,132px);aspect-ratio:auto;padding:12px 16px}
.home-shell .home-ad .banner.custom{height:clamp(86px,16dvh,132px)}
.home-shell .home-ad .banner h2{font-size:clamp(17px,4.5vw,22px);margin-bottom:5px}
.home-shell .home-ad .banner p{font-size:13px;line-height:1.4}
.home-shell .home-ad .dots{height:20px;margin:0}
.home-shell .home-ad .dots button{height:20px}
.home-shell .home-task-panel{flex:1;min-height:0;display:flex;flex-direction:column;padding:8px 10px 4px!important}
.home-shell .home-activity-pages{flex:1;min-height:0;overflow-y:hidden}
.home-shell .home-activity-pages>.home-task-grid{height:100%;grid-template-rows:repeat(2,minmax(0,1fr));gap:4px 6px!important;align-items:stretch}
.home-shell .home-task{height:100%;min-height:0;justify-content:center;gap:5px;padding:4px 2px!important}
.home-shell .home-task .taskicon{flex:none;width:clamp(34px,7dvh,61px)!important;height:clamp(34px,7dvh,61px)!important}
.home-shell .home-task .taskicon>svg{width:65%!important;height:65%!important}
.home-shell .home-activity-pages .home-task-title{font-size:14px!important;line-height:1.2;min-height:2.4em;height:2.4em;max-height:2.4em;flex:none}
.home-shell .home-activity-dots{flex:none;margin:0;height:20px}
.home-shell .home-activity-dots button{height:20px}
.home-shell .home-content .services{flex:none;padding:8px 0 0;gap:6px}
.home-shell .home-content .service{min-height:0;gap:5px}
.home-shell .home-content .service .shortcut-3d{width:clamp(44px,8dvh,70px);height:clamp(44px,8dvh,70px)}
.home-shell .home-content .service>span{font-size:14px;line-height:1.2}
.home-screen-mode .shell.home-shell{padding-bottom:calc(92px + max(28px,env(safe-area-inset-bottom)))}
.ggm-inbox-head h1{font-size:18px!important;font-weight:400!important;letter-spacing:0}
/* Account-only gray green surface, including outside and beneath the dock. */
html:has(.account-shell),body:has(.account-shell),.shell.account-shell,.account-shell .account-page{background:#e8eee9}
@media(max-height:650px){
 .home-shell .home-masthead{padding:calc(8px + env(safe-area-inset-top)) 18px 26px}
 .home-shell .topfeature{min-height:50px}
 .home-shell .home-content{padding-top:8px;gap:4px}
 .home-shell .home-ad .banner{height:78px;padding:8px 12px}
 .home-shell .home-ad .banneraccent{height:64px;width:64px}
 .home-shell .home-task .taskicon{width:34px!important;height:34px!important;border-radius:11px}
 .home-shell .home-content .services{padding-top:4px}
 .home-shell .home-content .service .shortcut-3d{width:44px;height:44px}
}
.home-shell .home-content .service{padding:1px 0}
@media(max-height:650px){
 .home-shell .home-ad .banner{height:100px}
 .home-shell .home-ad .banner h2{font-size:16px;line-height:1.2}
 .home-shell .home-ad .banner p{font-size:12px;line-height:1.35}
 .home-shell .home-ad .banneraccent{width:52px;height:52px}
 .home-shell .home-ad .banner>div:first-of-type{max-width:calc(100% - 50px)}
}
@media(max-width:360px){.home-shell .home-activity-pages .home-task-title{font-size:13px!important}}

/* Tasks are reached through the service icon instead of a duplicate home panel. */
.home-shell .serviceicon.shortcut-tasks{position:relative;overflow:visible}
.home-task-count{position:absolute;right:-5px;top:-5px;display:grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border:2px solid #fff;border-radius:20px;background:#e94e4e;color:#fff;font:600 12px/1 system-ui;box-shadow:0 2px 5px #304d3220}
.home-shell .home-content .services{margin-top:12px}
.home-shell .service .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Continue the inbox/discovery surface behind the floating navigation to the viewport edge. */
.shell.nav-page-shell{margin-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;min-height:100dvh}
@media(min-width:650px){.shell.nav-page-shell{min-height:calc(100dvh - 25px)}}

/* Signed-out inbox: a compact login entry replaces the empty white list strip. */
.inbox-login-prompt{display:flex;justify-content:center;padding:28px 20px;background:var(--bg)}
.inbox-login-button{min-height:44px;padding:10px 22px;font-size:16px;font-weight:400;color:#536f60;border:1px solid #dce6dc;border-radius:14px;background:#ffffff80}
.inbox-login-button:active{background:#e7eee5}
