@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;600;700;900&display=swap");*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}:root{--bg-base:#FFF9E6;--bg-card:#FFFFFF;--bg-muted:#FFF3CC;--accent-primary:#FF6B35;--accent-primary-light:#FF8C5A;--accent-secondary:#F7C948;--accent-green:#4CAF7D;--accent-blue:#4A90D9;--accent-purple:#9B59B6;--text-primary:#1A1A1A;--text-secondary:#666666;--text-muted:#999999;--text-on-accent:#FFFFFF;--grad-header:linear-gradient(135deg,#FF6B35,#F7C948);--grad-header-alt:linear-gradient(135deg,#FF8C5A,#FF6B35 60%,#E55A2B);--grad-card-accent:linear-gradient(135deg,#FFF9E6,#FFF0CC);--grad-bottom-nav:linear-gradient(180deg,rgba(255,255,255,0.95),#FFFFFF);--shadow-sm:0 2px 8px rgba(0,0,0,0.06);--shadow-md:0 4px 16px rgba(0,0,0,0.10);--shadow-lg:0 8px 32px rgba(0,0,0,0.14);--shadow-accent:0 4px 20px rgba(255,107,53,0.30);--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-xl:32px;--radius-full:9999px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}html{font-family:Noto Sans JP,-apple-system,BlinkMacSystemFont,Hiragino Sans,sans-serif;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--bg-base);color:var(--text-primary);min-height:100dvh;overflow-x:hidden}::-webkit-scrollbar{display:none}*{scrollbar-width:none;-ms-overflow-style:none}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-2{-webkit-line-clamp:2}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes spin{to{transform:rotate(1turn)}}.animate-fadeInUp{animation:fadeInUp .4s ease-out forwards}.animate-fadeIn{animation:fadeIn .3s ease-out forwards}.animate-scaleIn{animation:scaleIn .3s ease-out forwards}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 24px;border:none;border-radius:var(--radius-full);font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease,opacity .2s ease;text-decoration:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:active{transform:scale(.94)!important}.btn-primary{background:var(--grad-header);color:var(--text-on-accent);box-shadow:var(--shadow-accent)}.btn-primary:hover{transform:scale(1.04);box-shadow:0 6px 24px rgba(255,107,53,.4)}.btn-secondary{background:var(--bg-card);color:var(--accent-primary);box-shadow:var(--shadow-sm);border:1.5px solid rgba(255,107,53,.2)}.btn-secondary:hover{transform:scale(1.04);box-shadow:var(--shadow-md)}.btn-ghost{background:transparent;color:var(--text-secondary);padding:8px 16px}.btn-ghost:hover{background:rgba(0,0,0,.05);transform:scale(1.02)}.card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s ease}.card:active{transform:scale(.97)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.input{width:100%;padding:14px 18px;border:1.5px solid rgba(0,0,0,.08);border-radius:var(--radius-md);background:var(--bg-card);font-family:inherit;font-size:15px;color:var(--text-primary);outline:none;transition:border-color .2s,box-shadow .2s}.input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px rgba(255,107,53,.12)}.input::placeholder{color:var(--text-muted)}.spinner{width:24px;height:24px;border:3px solid rgba(255,107,53,.2);border-top:3px solid var(--accent-primary);border-radius:50%;animation:spin .7s linear infinite}.tag{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:var(--radius-full);font-size:12px;font-weight:600;line-height:1}.section-title{font-size:20px;font-weight:700;color:var(--text-primary);letter-spacing:-.3px}.section-subtitle{font-size:13px;color:var(--text-secondary);font-weight:400}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:flex-end;animation:fadeIn .2s ease}.modal-sheet{width:100%;background:var(--bg-card);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:24px 20px calc(24px + var(--safe-bottom));animation:slideUp .35s cubic-bezier(.34,1.56,.64,1);max-height:90dvh;overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(100px)}to{opacity:1;transform:translateY(0)}}.modal-handle{width:40px;height:4px;background:rgba(0,0,0,.12);border-radius:2px;margin:0 auto 20px}.cat-main{background:rgba(255,107,53,.12);color:#E55A2B}.cat-side{background:rgba(76,175,125,.12);color:#3A9E6A}.cat-soup{background:rgba(74,144,217,.12);color:#2E7CC7}.cat-rice{background:rgba(247,201,72,.18);color:#C9900A}.cat-sweets{background:rgba(155,89,182,.12);color:#8E44A9}.cat-salad{background:rgba(76,175,125,.15);color:#3A9E6A}.cat-other{background:rgba(0,0,0,.06);color:#555}.page-container{min-height:100dvh;display:flex;flex-direction:column}.main-content{flex:1 1;padding:16px 16px 100px;max-width:480px;margin:0 auto;width:100%}