.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;padding:8px 0}.no-recipes{text-align:center;color:#666;padding:20px}.recipe-grid-item{display:flex;flex-direction:column;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}.recipe-grid-item:hover{transform:translateY(-4px);box-shadow:0 4px 16px #00000026}.recipe-image{width:100%;height:140px;overflow:hidden}.recipe-image img{width:100%;height:100%;object-fit:cover}.recipe-info{padding:12px;display:flex;flex-direction:column;gap:4px}.recipe-name{margin:0;font-size:.95rem;font-weight:600;color:#333;line-height:1.3}.recipe-cuisine{font-size:.75rem;color:#ff6b6b;text-transform:uppercase;letter-spacing:.5px}.recipe-meta{display:flex;align-items:center;gap:8px;font-size:.8rem;color:#666;flex-wrap:wrap}.recipe-rating{color:#ffc107}.rating-count{color:#999;font-size:.7rem}.recipe-time{color:#666}.recipe-description{margin:4px 0 0;font-size:.8rem;color:#666;line-height:1.4}.recipe-card-detail{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 10px #0000001a}.recipe-card-header{padding:16px;background:linear-gradient(135deg,#ff6b6b,#ee5a5a);color:#fff;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.recipe-card-header h3{margin:0;font-size:1.1rem}.cuisine-badge{background:#fff3;padding:4px 10px;border-radius:12px;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.recipe-card-image{width:100%;max-height:250px;overflow:hidden}.recipe-card-image img{width:100%;height:100%;object-fit:cover}.recipe-card-body{padding:16px;display:flex;flex-direction:column;gap:12px}.recipe-card-body .description{margin:0;color:#555;line-height:1.5;font-size:.9rem}.recipe-stats{display:flex;gap:16px;flex-wrap:wrap}.stat{display:flex;flex-direction:column;gap:2px}.stat-label{font-size:.7rem;color:#999;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-weight:600;color:#333}.recipe-counts{display:flex;gap:16px;font-size:.85rem;color:#666}.recipe-rating-detail{display:flex;align-items:center;gap:8px}.stars{color:#ffc107;letter-spacing:2px}.rating-text{color:#666;font-size:.85rem}.nutrition-summary{background:#f9f9f9;padding:12px;border-radius:8px}.nutrition-summary h4{margin:0 0 8px;font-size:.8rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.nutrition-grid{display:flex;flex-wrap:wrap;gap:12px}.nutrition-item{font-size:.85rem;color:#555}.nutrition-item strong{color:#333}.recipe-tags{display:flex;flex-wrap:wrap;gap:6px}.tag{padding:4px 10px;background:#f0f0f0;border-radius:12px;font-size:.75rem;color:#666}.tag.category{background:#ffe0e0;color:#d63031}.view-recipe-button{display:block;margin:16px;padding:14px;background:#ff6b6b;color:#fff;text-align:center;text-decoration:none;border-radius:8px;font-weight:600;transition:background .2s}.view-recipe-button:hover{background:#ee5a5a}.grocery-list{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 10px #0000001a}.grocery-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background:linear-gradient(135deg,#00b894,#00a884);color:#fff}.grocery-header h3{margin:0;font-size:1.1rem}.item-count{background:#fff3;padding:4px 10px;border-radius:12px;font-size:.85rem}.recipes-for-list{padding:12px 16px;background:#f0f9f7;border-bottom:1px solid #e0f0ed}.recipes-for-list h4{margin:0 0 8px;font-size:.8rem;color:#00a884;text-transform:uppercase;letter-spacing:.5px}.recipes-for-list ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.recipes-for-list li a{display:inline-block;padding:4px 10px;background:#fff;border-radius:4px;color:#00a884;text-decoration:none;font-size:.85rem;transition:background .2s}.recipes-for-list li a:hover{background:#e0f0ed}.grocery-sections{padding:16px;display:flex;flex-direction:column;gap:20px}.grocery-section h4{margin:0 0 8px;font-size:.95rem;color:#333;display:flex;align-items:center;gap:8px;border-bottom:2px solid #f0f0f0;padding-bottom:8px}.section-emoji{font-size:1.1rem}.grocery-section ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.grocery-item{display:flex;align-items:center;gap:10px;padding:8px;border-radius:6px;cursor:pointer;transition:background .2s}.grocery-item:hover{background:#f5f5f5}.grocery-item input[type=checkbox]{width:18px;height:18px;accent-color:#00b894;cursor:pointer}.grocery-item input[type=checkbox]:checked+span{text-decoration:line-through;color:#999}.grocery-item span{flex:1;font-size:.9rem;color:#333}.recipe-chat{display:flex;flex-direction:column;height:100%;max-width:800px;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,#ff6b6b,#ee5a5a);color:#fff}.chat-header h2{margin:0;font-size:1.25rem}.model-selector{display:flex;align-items:center;gap:8px;font-size:.875rem}.model-selector label{opacity:.9}.model-selector select{padding:4px 8px;border:none;border-radius:4px;background:#fff3;color:#fff;font-size:.875rem;cursor:pointer}.model-selector select option{background:#333;color:#fff}.chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px}.welcome-message{text-align:center;color:#666;padding:40px 20px}.welcome-message p{margin:0 0 12px}.welcome-message ul{list-style:none;padding:0;margin:0}.welcome-message li{padding:8px 12px;margin:4px 0;background:#f5f5f5;border-radius:8px;cursor:pointer;transition:background .2s}.welcome-message li:hover{background:#eee}.message{display:flex;flex-direction:column;gap:8px}.message.user{align-items:flex-end}.message.user .message-content{background:#ff6b6b;color:#fff;border-radius:16px 16px 4px}.message.assistant .message-content{background:#f0f0f0;color:#333;border-radius:16px 16px 16px 4px}.message-content{max-width:80%;padding:12px 16px}.message-content p{margin:0 0 8px}.message-content p:last-child{margin-bottom:0}.tool-result{width:100%}.tool-pending{display:flex;align-items:center;gap:8px;color:#666;font-style:italic}.spinner{width:16px;height:16px;border:2px solid #ddd;border-top-color:#ff6b6b;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.tool-error{color:#d63031;padding:8px 12px;background:#ffebee;border-radius:8px}.typing-indicator{display:flex;gap:4px;padding:12px 16px;background:#f0f0f0;border-radius:16px;width:fit-content}.typing-indicator span{width:8px;height:8px;background:#999;border-radius:50%;animation:bounce 1.4s infinite ease-in-out}.typing-indicator span:nth-child(1){animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.error-message{color:#d63031;padding:12px;background:#ffebee;border-radius:8px;text-align:center}.chat-input-form{display:flex;gap:8px;padding:16px 20px;background:#f9f9f9;border-top:1px solid #eee}.chat-input{flex:1;padding:12px 16px;border:1px solid #ddd;border-radius:24px;font-size:1rem;outline:none;transition:border-color .2s}.chat-input:focus{border-color:#ff6b6b}.chat-input:disabled{background:#f5f5f5}.send-button{padding:12px 24px;background:#ff6b6b;color:#fff;border:none;border-radius:24px;font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s}.send-button:hover:not(:disabled){background:#ee5a5a}.send-button:disabled{background:#ccc;cursor:not-allowed}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background:#f5f5f5}.app{min-height:100vh;display:flex;flex-direction:column}.header{background:linear-gradient(135deg,#ff6b6b,#ee5a5a);color:#fff;padding:1.5rem 2rem;text-align:center;box-shadow:0 2px 10px #0000001a}.header h1{font-size:2rem;margin:0 0 .25rem}.subtitle{font-size:.95rem;opacity:.9;margin:0}.container{flex:1;display:flex;flex-direction:column;max-width:900px;width:100%;margin:0 auto;padding:1.5rem}.footer{background:#2d3748;color:#fff;padding:1rem;text-align:center;font-size:.875rem}.footer p{margin:0}.footer a{color:#ff6b6b;text-decoration:none}.footer a:hover{text-decoration:underline}@media(max-width:768px){.header{padding:1rem}.header h1{font-size:1.5rem}.container{padding:1rem}}@media(min-height:700px){.container{min-height:500px}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.6;color:#333;background:#f5f5f5}#root{min-height:100vh}button{cursor:pointer;border:none;padding:.75rem 1.5rem;border-radius:6px;font-size:1rem;transition:all .2s;font-weight:500}button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000026}button:active{transform:translateY(0)}button:disabled{opacity:.6;cursor:not-allowed}pre{background:#f5f5f5;padding:1rem;border-radius:4px;overflow-x:auto;font-size:.875rem}code{background:#e0e0e0;padding:.2rem .4rem;border-radius:3px;font-size:.875em}
