:root{--bg-blue: #9BDCF5;--bg-outside: #B8E4F9;--bg-art: url(/home-art-bg.svg);--cream: #FFFAEF;--cream-card: #FFFAEF;--tomato: #E8604C;--heading-blue: #168EB9;--dark-text: #263244;--secondary-text: #657082;--pink: #F43C96;--pink-soft: #FFF0F6;--green: #8FD238;--green-soft: #EEF9D8;--orange: #F47B3D;--yellow-soft: #FFF3CD;--blue-strong: #3355C9;--blue-soft: #ECEFFF;--purple: #7927D6;--purple-soft: #F3EAFF;--white: #ffffff;--radius-card: 20px;--radius-large: 28px;--shadow: 0 8px 24px rgba(22, 142, 185, .16);--bottom-nav-height: 69px}*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;min-width:0;background:var(--bg-outside);color:var(--dark-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;min-height:100%;touch-action:manipulation}#root{width:100%;min-width:0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;overflow-x:clip}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:none}.app-shell{max-width:430px;margin-inline:auto;width:100%;min-width:0;flex:1;display:flex;flex-direction:column;background:var(--bg-art) center top / cover no-repeat fixed;box-shadow:0 0 40px #168eb92e}@media (max-width: 900px){.app-shell,.bottom-nav,.pages-shell .bottom-nav{width:100%;max-width:none!important;margin-inline:0}}.page{padding:16px 16px calc(var(--bottom-nav-height) + 41px);width:100%;min-width:0;box-sizing:border-box;flex:1}.banner{background:transparent;padding:14px 16px 4px;display:flex;align-items:center;gap:8px;height:84px;position:relative;overflow:hidden;-webkit-user-select:none;user-select:none}.banner-illustration{height:60px;width:auto;pointer-events:none;-webkit-user-drag:none}.card{background:#fff;border-radius:20px;padding:14px 16px;box-shadow:0 4px 16px #2934450f;margin-bottom:12px}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.menu-tile{border-radius:var(--radius-large);padding:18px 14px;min-height:128px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow);border:2px solid transparent;text-align:left}.menu-tile .tile-icon{font-size:30px;margin-bottom:8px}.menu-tile .tile-title{font-weight:700;font-size:17px;color:var(--dark-text);line-height:1.2}h1,h2,h3{color:var(--heading-blue);margin:0;font-weight:800}.page-title{font-size:26px;margin-bottom:4px}.page-sub{color:var(--secondary-text);margin:0 0 16px;font-size:15px}.btn{border-radius:14px;padding:14px 18px;font-size:16px;font-weight:700;min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;transition:transform .05s ease,opacity .15s ease}.btn:active{transform:scale(.98);opacity:.9}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--heading-blue);color:#fff}.btn-purple{background:var(--purple);color:#fff}.btn-ghost{background:transparent;border:2px solid var(--heading-blue);color:var(--heading-blue)}.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;border-radius:999px;padding:6px 12px;margin-bottom:10px}.status-online{background:var(--green-soft);color:#5c8a1e}.status-offline{background:var(--yellow-soft);color:#b06a12}.status-syncing{background:var(--blue-soft);color:var(--blue-strong)}.list-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(38,50,68,.08)}.list-row:last-child{border-bottom:none}.checkbox-native{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:26px;height:26px;border-radius:8px;border:2px solid var(--checkbox-border, var(--heading-blue));background:var(--white);flex-shrink:0;position:relative;margin:0;cursor:pointer}.checkbox-native:checked{background:var(--checkbox-bg, var(--heading-blue))}.checkbox-native:checked:after{content:"";position:absolute;left:7px;top:3px;width:6px;height:12px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}.checkbox-native:focus-visible{outline:3px solid rgba(22,142,185,.4)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid rgba(38,50,68,.08);display:flex;justify-content:space-around;padding:8px 4px calc(8px + env(safe-area-inset-bottom));z-index:30;max-width:430px;margin:0 auto;box-shadow:0 -4px 16px #2632441a}.nav-item{background:transparent;display:flex;flex:1 1 0;flex-direction:column;align-items:center;gap:3px;border-radius:12px;padding:6px 12px;font-size:11px;font-weight:600;color:var(--secondary-text);min-height:52px;min-width:60px}.nav-item .nav-icon{font-size:22px;line-height:1}.nav-item.active{color:var(--heading-blue)}.home-header-tab{position:relative;background:var(--cream);border:2px solid var(--orange);border-radius:22px 26px 24px 20px;box-shadow:6px 8px 0 0 var(--pink);padding:14px 16px 12px;margin-bottom:14px;display:flex;flex-direction:column;align-items:flex-start}.home-header-tab h1{font-size:24px;line-height:1.1;margin:0;color:var(--dark-text)}.home-header-tab p{font-size:13px;color:var(--secondary-text);margin:4px 0 0}.photo-edit-toggle{background:#fffaefeb;border:2px solid var(--pink);color:var(--pink);border-radius:999px;padding:7px 12px;font-size:12px;font-weight:700;flex-shrink:0;margin-left:10px}.photo-edit-toggle.on{background:var(--pink);color:#fff}.tonight-card{background:#f5ffe8;border:2px solid #8FD238;border-radius:24px;padding:16px 16px 14px;margin-bottom:14px;display:block;width:100%;text-align:left}.tonight-card .tonight-label{font-size:12px;font-weight:700;color:#61aa2d;text-transform:uppercase;letter-spacing:.5px}.tonight-card .tonight-name{font-size:19px;font-weight:800;color:#61aa2d;margin-top:4px}.tonight-card .tonight-hint{font-size:13px;color:var(--secondary-text);margin-top:4px}.section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px;width:100%}.section-card{border-radius:22px;padding:10px;display:flex;flex-direction:column;width:100%;min-width:0;box-shadow:0 4px 14px #2632441a}.section-media{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4 / 3;width:100%;min-width:0;background:#ffffff8c;display:flex;align-items:center;justify-content:center}.section-media img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.section-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--secondary-text);font-size:12px;text-align:center;padding:8px;border:2px dashed rgba(38,50,68,.2);border-radius:16px;width:100%;height:100%;cursor:pointer}.section-placeholder .ph-icon{font-size:26px}.media-controls{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:8px;background:#fffaefd1}.media-btn{background:#fff;border:2px solid var(--pink);color:var(--pink);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:700}.media-btn.solid{background:var(--pink);color:#fff}.section-title{font-size:15px;font-weight:800;text-align:center;padding:10px 4px 4px;line-height:1.2}.buddy-card{background:#f3eaff;border:2px solid var(--purple);border-radius:22px;padding:14px 16px;margin-top:14px;display:flex;align-items:center;gap:14px;width:100%;text-align:left;box-shadow:0 4px 14px #7927d624}.buddy-card .buddy-icon{font-size:30px;flex-shrink:0}.buddy-card .buddy-title{font-size:16px;font-weight:800;color:var(--purple)}.buddy-card .buddy-sub{font-size:13px;color:var(--secondary-text);margin-top:2px}.app-shell:not(.pages-shell) .page{width:100%;min-width:0;box-sizing:border-box;flex:1;display:flex;flex-direction:column;gap:16px;padding-top:calc(env(safe-area-inset-top,0px) + 40px);padding-bottom:calc(env(safe-area-inset-bottom,0px) + var(--bottom-nav-height) + 32px);padding-left:16px;padding-right:16px}.app-shell:not(.pages-shell) .home-header-tab,.app-shell:not(.pages-shell) .tonight-card,.app-shell:not(.pages-shell) .buddy-card{width:100%;margin-inline:0;margin-bottom:0;box-sizing:border-box}.app-shell:not(.pages-shell) .home-header-tab{margin-bottom:16px}.app-shell:not(.pages-shell) .section-grid{gap:14px 10px;margin-bottom:0}.app-shell:not(.pages-shell) .section-card{aspect-ratio:1.06 / 1}.app-shell:not(.pages-shell) .buddy-card{margin-top:0}.c-soft{background:var(--soft-bg, var(--white))}.c-border{border-color:var(--bright, var(--heading-blue))}#root,.app-shell{max-width:100%;overflow-x:clip}html,body{overflow-y:auto}.refresh-fab{position:fixed;right:max(16px,calc(50% - 199px));top:calc(env(safe-area-inset-top,0px) + 12px);z-index:40;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:44px;padding:0 16px;border-radius:999px;background:#fff;border:2px solid var(--heading-blue);color:var(--heading-blue);font-size:14px;font-weight:700;box-shadow:0 4px 14px #168eb959;transition:background .15s ease,color .15s ease}.refresh-fab .refresh-icon{font-size:16px;line-height:1}.refresh-fab:disabled{opacity:.75}.refresh-icon.spin{display:inline-block;animation:refresh-spin .9s linear infinite}.refresh-fab.done{border-color:#8fd238;color:#58a527}@keyframes refresh-spin{to{transform:rotate(360deg)}}.ingredient-panel{background:var(--soft-bg, var(--white));border:2px solid var(--bright, var(--heading-blue));border-radius:var(--radius-card);padding:16px;margin-bottom:14px}.pages-shell{max-width:860px;background-color:#cdeef8;background-image:radial-gradient(ellipse 75% 25% at 12% 8%,rgba(255,255,255,.36) 0%,rgba(255,255,255,.36) 78%,transparent 79%),radial-gradient(ellipse 80% 28% at 88% 30%,rgba(65,177,229,.18) 0%,rgba(65,177,229,.18) 76%,transparent 77%),radial-gradient(ellipse 85% 30% at 8% 57%,rgba(255,255,255,.32) 0%,rgba(255,255,255,.32) 75%,transparent 76%),radial-gradient(ellipse 90% 28% at 92% 82%,rgba(65,177,229,.16) 0%,rgba(65,177,229,.16) 77%,transparent 78%);background-repeat:no-repeat;background-attachment:fixed;background-size:100% 100%;font-family:Trebuchet MS,Tahoma,Segoe UI,system-ui,sans-serif;box-shadow:0 0 40px #168eb924}.pages-shell button,.pages-shell input,.pages-shell select,.pages-shell textarea{font-family:inherit}.pages-shell h1,.pages-shell h2,.pages-shell h3{color:#293445}.pages-shell .page{padding-top:16px}.pages-shell .page-title{color:#293445;font-size:24px;font-weight:600;margin-top:14px;margin-bottom:4px}.pages-shell .page-sub{color:#697282;margin-bottom:14px}.pages-shell .bottom-nav{max-width:860px}.btn-back{width:100%;background:#fff;border:2px solid #168EB9;color:#136f91;border-radius:16px;justify-content:flex-start;text-align:left}
