:root{--font-title:"M PLUS Rounded 1c", sans-serif;--font-body:"Noto Sans JP", sans-serif;--font-number:"Outfit", sans-serif;--pg-font-scale:1;--bg-color:#faf9f6;--surface-color:#fff;--primary-color:#e07a5f;--primary-light-color:#f4dfd9;--secondary-color:#81b29a;--secondary-light-color:#e9f1ec;--accent-color:#f2cc8f;--text-main:#3d3a37;--text-sub:#7a7571;--border-color:#eae7e1;--toast-bg-color:#3d3a37f0;--toast-text-color:#faf9f6;--toast-border-color:#3d3a3729;--toast-shadow:0 8px 18px #00000040;--shadow-sm:0 2px 8px #3d3a370a;--shadow-md:0 4px 20px #3d3a370f;--shadow-lg:0 10px 30px #3d3a3714;--pg-app-height:100dvh;--vvh:100dvh;--vv-offset-top:0px;--keyboard-inset:0px}[data-theme=dark]{--bg-color:#1e1c1a;--surface-color:#2b2825;--primary-color:#f28482;--primary-light-color:#443634;--secondary-color:#98c1d9;--secondary-light-color:#26333c;--accent-color:#f2cc8f;--text-main:#eae7e1;--text-sub:#a59e99;--border-color:#3d3935;--toast-bg-color:#e3e0da;--toast-text-color:#2b2825;--toast-border-color:#c9c2b8;--toast-shadow:0 10px 24px #00000047;--shadow-sm:0 2px 4px #0003;--shadow-md:0 4px 12px #00000040;--shadow-lg:0 8px 24px #0000004d}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{color:var(--text-main);font-family:var(--font-body);font-size:calc(14px * var(--pg-font-scale));min-height:var(--pg-app-height);background-color:#12100e;justify-content:center;align-items:center;display:flex;overflow:hidden}#root{width:100%;height:var(--pg-app-height);justify-content:center;align-items:center;min-height:0;display:flex}html.ios-vv-fix body{min-height:var(--vvh)}html.ios-vv-fix #root{height:var(--vvh)}html.ios-vv-fix .app-shell{height:var(--vvh);max-height:var(--vvh)}.app-shell{width:100%;max-width:440px;height:min(var(--pg-app-height), 880px);max-height:var(--pg-app-height);background-color:var(--bg-color);flex-direction:column;min-height:0;transition:background-color .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 60px #00000080}@media (width<=440px){.app-shell{height:var(--pg-app-height);max-height:var(--pg-app-height);box-shadow:none}}h1{font-family:var(--font-title);font-size:22px;font-weight:700}h2{font-family:var(--font-title);font-size:17px;font-weight:500}.font-num{font-family:var(--font-number)}button,.touch-target{cursor:pointer;background:0 0;border:none;outline:none;justify-content:center;align-items:center;min-width:48px;min-height:48px;font-family:inherit;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}button:active{transform:scale(.97)}.ios-scheduler-date-field{box-sizing:border-box}.ios-scheduler-date-input::-webkit-date-and-time-value{text-align:left;min-height:20px;line-height:20px}.ios-scheduler-date-input::-webkit-datetime-edit{min-height:100%;color:inherit;font:inherit;align-items:center;padding:0;display:flex}.ios-scheduler-date-input::-webkit-datetime-edit-fields-wrapper{align-items:center;min-height:100%;padding:0;display:flex}.ios-scheduler-date-input::-webkit-datetime-edit-text{min-height:100%;color:inherit;font:inherit;align-items:center;padding:0;line-height:20px;display:inline-flex}.ios-scheduler-date-input::-webkit-datetime-edit-month-field{min-height:100%;color:inherit;font:inherit;align-items:center;padding:0;line-height:20px;display:inline-flex}.ios-scheduler-date-input::-webkit-datetime-edit-day-field{min-height:100%;color:inherit;font:inherit;align-items:center;padding:0;line-height:20px;display:inline-flex}.ios-scheduler-date-input::-webkit-datetime-edit-year-field{min-height:100%;color:inherit;font:inherit;align-items:center;padding:0;line-height:20px;display:inline-flex}.ios-scheduler-date-input::-webkit-calendar-picker-indicator{opacity:1;margin:0}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer-card{background:linear-gradient(90deg, var(--border-color) 25%, var(--primary-light-color) 37%, var(--border-color) 63%);background-size:200% 100%;animation:1.5s linear infinite shimmer}@keyframes swap-pulse{0%{box-shadow:0 0 0 0 var(--primary-color);opacity:1}70%{opacity:.85;box-shadow:0 0 0 8px #0000}to{opacity:1;box-shadow:0 0 #0000}}.swap-mode-pulse{animation:1.5s ease-in-out infinite swap-pulse;border:2px dashed var(--primary-color)!important}@keyframes fab-ring-expand{0%{opacity:.45;transform:scale(.9)}to{opacity:0;transform:scale(1.45)}}.fab-common{transition:transform .18s,box-shadow .22s,filter .22s;position:relative;overflow:visible}.fab-common:before,.fab-common:after{content:"";pointer-events:none;border-radius:50%;position:absolute;inset:0}.fab-common:before{opacity:0;background:radial-gradient(circle,#ffffff47 0%,#fff0 65%);transform:scale(1)}.fab-common:after{border:2px solid color-mix(in srgb, var(--primary-color) 65%, white 35%);opacity:0;transform:scale(1)}@media (hover:hover){.fab-common:hover{filter:saturate(1.05);transform:translateY(-1px)scale(1.03);box-shadow:0 8px 20px #e07a5f73}}.fab-common.fab-pressed{transform:scale(.965);box-shadow:0 2px 8px #e07a5f59}.fab-common.fab-pressed:before{opacity:1;animation:.36s ease-out fab-ring-expand}.fab-common.fab-pressed:after{opacity:.95;animation:.42s ease-out fab-ring-expand}.shopping-item-row{transition:opacity .3s,height .3s,margin .3s,transform .3s;overflow:hidden}.shopping-item-row.hidden-item{opacity:0;transform:scaleY(0);border:none!important;height:0!important;margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important}.card{background-color:var(--surface-color);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:16px;transition:all .2s}[data-theme=light] .card{box-shadow:var(--shadow-md)}.chip{background-color:var(--border-color);color:var(--text-sub);border-radius:8px;align-items:center;padding:6px 12px;font-size:12px;font-weight:500;transition:all .2s;display:inline-flex}.chip.active{background-color:var(--primary-color);color:#fff}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--text-sub)}.sync-spinner{border:4px solid var(--border-color);border-top:4px solid var(--primary-color);border-radius:50%;width:48px;height:48px;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
