:root{--accent:#ff6b35;--accent-light:#ff8c5a;--accent-soft:#ffece3;--bg:#fff8f3;--border:#ffe4d6;--surface:#fff;--surface-warm:#fff0e6;--text:#2c2c2c;--text-secondary:#6b6b6b;--text-muted:#9a9a9a;--positive:#4caf50;--font-primary:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body,html{font-family:var(--font-primary);font-size:16px;line-height:1.5;color:var(--text);background-color:var(--bg)}.container{display:flex;flex-direction:column;gap:0;max-width:390px;min-height:100vh;margin:0 auto;background:var(--bg)}.container>.cards-section,.container>.footer-section,.container>.msg-section,.container>.welcome-header{padding-left:24px;padding-right:24px}.spacer{flex-shrink:0}.spacer-sm{height:8px}.spacer-md{height:16px}.spacer-lg{height:24px}.spacer-xl{height:40px}.header{display:flex;align-items:center;padding:56px 20px 16px;gap:12px}.header-centered{justify-content:space-between}.back-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--surface);border:none;border-radius:12px;cursor:pointer;color:var(--text);font-size:20px}.header-title{font-size:18px;font-weight:700;color:var(--text)}.header-spacer{width:40px;height:40px}.header-text-btn{background:none;border:none;font-size:14px;font-weight:500;color:var(--accent);cursor:pointer;padding:8px 0;min-width:40px}.trial-badge{font-size:12px;font-weight:600;color:var(--accent);background:var(--accent-soft);padding:6px 10px;border-radius:12px;white-space:nowrap}.welcome-header{flex-direction:column;gap:8px;padding-top:44px}.logo,.welcome-header{display:flex;align-items:center}.logo{justify-content:center;width:80px;height:80px}.logo-icon{width:100%;height:100%;object-fit:contain;border-radius:16px}.app-name{font-size:28px;font-weight:700;color:var(--accent)}.tagline{font-size:16px;font-weight:500;color:var(--text-secondary)}.msg-section{flex-direction:column;gap:12px}.msg-bubble,.msg-section{display:flex;align-items:center}.msg-bubble{gap:8px;padding:16px 20px;background:var(--accent-soft);border-radius:20px}.msg-bubble-icon{color:var(--accent);font-size:24px}.msg-bubble-text{font-size:16px;font-weight:600;color:var(--text)}.msg-sub{font-size:14px;color:var(--text-secondary)}.cards-section{display:flex;flex-direction:column;gap:16px}.feature-card{display:flex;align-items:center;gap:16px;padding:20px;background:var(--surface);border:2px solid var(--border);border-radius:20px;cursor:pointer;text-decoration:none;transition:all .2s}.feature-card:hover{border-color:var(--accent);transform:translateY(-2px)}.feature-card-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--accent-soft);border-radius:16px;font-size:28px;flex-shrink:0}.feature-card-content{display:flex;flex-direction:column;gap:6px;flex:1 1}.feature-card-title{font-size:17px;font-weight:700;color:var(--text)}.feature-card-desc{font-size:13px;color:var(--text-secondary);line-height:1.5}.feature-card-arrow{color:var(--accent);font-size:24px;flex-shrink:0}.feature-card-remaining{font-size:12px;font-weight:600;color:var(--accent);margin-top:4px}.feature-card.disabled{opacity:.5;pointer-events:none}.feature-card.disabled .feature-card-remaining{color:var(--text-muted)}.footer-section{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:auto;padding-bottom:40px}.footer-text{font-size:13px;color:var(--text-muted)}.cta-btn{display:flex;align-items:center;gap:8px;padding:14px 32px;background:var(--accent);color:#fff;border:none;border-radius:30px;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none}.cta-btn:hover{background:var(--accent-light)}.section-label{display:flex;align-items:center;gap:8px;margin-bottom:12px}.section-label-icon{font-size:20px}.section-label-text{font-size:15px;font-weight:600;color:var(--text)}.section-label-optional{font-size:12px;font-weight:400;color:#999}.chip-grid{display:flex;flex-wrap:wrap;gap:10px}.chip{display:flex;align-items:center;gap:6px;padding:10px 14px;background:var(--surface);border:2px solid var(--border);border-radius:20px;cursor:pointer;font-size:14px;font-weight:500;color:var(--text);transition:all .2s}.chip.selected,.chip:hover{border-color:var(--accent)}.chip.selected{background:var(--accent);color:#fff}.chip-close{font-size:14px;opacity:.8}.ingredient-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.ingredient-chip{display:flex;flex-direction:row;align-items:center;gap:6px;padding:8px 10px;background:var(--surface);border:2px solid var(--border);border-radius:10px;cursor:pointer;transition:all .15s ease}.ingredient-chip:hover{border-color:var(--accent);background:#fff5f0}.ingredient-chip.selected{background:var(--accent);border-color:var(--accent)}.ingredient-chip.selected .ingredient-name{color:#fff}.ingredient-emoji{font-size:16px;line-height:1;flex-shrink:0}.ingredient-name{font-size:12px;font-weight:600;line-height:1.2;color:#333}.option-grid{display:flex;gap:10px}.option-card{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 12px;background:var(--surface);border:2px solid var(--border);border-radius:16px;cursor:pointer;transition:all .2s}.option-card.selected,.option-card:hover{border-color:var(--accent)}.option-card.selected{background:var(--accent)}.option-card.selected .option-icon,.option-card.selected .option-label,.option-card.selected .option-sublabel{color:#fff}.option-icon{font-size:24px}.option-label{font-size:14px;font-weight:600;color:var(--text)}.option-sublabel{font-size:11px;color:var(--text-secondary)}.submit-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:18px 24px;background:var(--accent);color:#fff;border:none;border-radius:28px;font-size:17px;font-weight:700;cursor:pointer;transition:all .2s}.submit-btn:hover:not(:disabled){background:var(--accent-light)}.submit-btn:disabled{background:#ccc;cursor:not-allowed}.submit-btn-icon{font-size:22px}.content{display:flex;flex-direction:column;gap:24px;padding:8px 20px;flex:1 1}.section{display:flex;flex-direction:column}.submit-section{padding:24px 0}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1 1;gap:16px}.spinner{width:50px;height:50px;border:4px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.loading-text{font-size:14px;color:var(--text-secondary)}.result-hero{display:flex;align-items:center;justify-content:center;padding:16px 24px}.result-msg{font-size:14px;font-weight:600;color:var(--accent)}.recipe-card{background:var(--surface);border-radius:20px;padding:20px}.recipe-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.recipe-emoji{font-size:32px}.recipe-info{display:flex;flex-direction:column;gap:4px;flex:1 1}.recipe-category{font-size:12px;font-weight:600;color:var(--accent)}.recipe-title{font-size:18px;font-weight:700;color:var(--text)}.recipe-time{font-size:12px;color:var(--text-secondary)}.nutrition-row{display:flex;gap:8px;margin-top:12px}.nutrition-box{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;border-radius:12px}.nutrition-box.cal{background:#fff8f0}.nutrition-box.protein{background:#e8f5e9}.nutrition-box.fat{background:#fff3e0}.nutrition-box.carb{background:#e3f2fd}.nutrition-value{font-size:14px;font-weight:700;color:var(--text)}.nutrition-label{font-size:10px;color:var(--text-secondary)}.detail-card{background:var(--surface);border-radius:16px;padding:16px}.detail-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.detail-header-icon{font-size:18px}.detail-header-text{font-size:14px;font-weight:700;color:var(--text)}.detail-list{display:flex;flex-direction:column;gap:8px}.detail-item{display:flex;justify-content:space-between;font-size:13px;color:var(--text-secondary)}.detail-item-name{color:var(--text)}.step-list{flex-direction:column}.step-item,.step-list{display:flex;gap:12px}.step-number{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--accent);color:#fff;border-radius:12px;font-size:12px;font-weight:700;flex-shrink:0}.step-text{font-size:13px;color:var(--text-secondary);line-height:1.6}.menu-section{gap:16px;padding:0 24px}.cta-card,.menu-section{display:flex;flex-direction:column}.cta-card{align-items:center;gap:12px;padding:20px;background:var(--surface-warm);border-radius:20px}.cta-card.accent{background:var(--accent)}.cta-card.accent .cta-card-desc,.cta-card.accent .cta-card-title{color:#fff}.cta-card-emoji{font-size:28px}.cta-card-title{font-size:15px;font-weight:700;color:var(--text)}.cta-card-desc{font-size:12px;color:var(--text-secondary);text-align:center;line-height:1.5}.cta-card-btn{display:flex;align-items:center;gap:6px;padding:10px 20px;background:#fff;border-radius:20px;font-size:13px;font-weight:600;color:var(--accent);text-decoration:none;cursor:pointer;border:none}.cta-section{padding:20px 24px}.scan-content{flex-direction:column;gap:32px;padding:40px 24px;flex:1 1;min-height:calc(100vh - 112px)}.scan-content,.scan-illustration{display:flex;align-items:center;justify-content:center}.scan-illustration{flex-direction:column;gap:8px;width:200px;height:200px;background:var(--accent-soft);border-radius:100px}.scan-illustration-main{font-size:72px}.scan-sparkles{display:flex;gap:16px}.scan-text-section{display:flex;flex-direction:column;align-items:center;gap:12px}.scan-title{font-size:20px;font-weight:700;color:var(--text)}.scan-desc{font-size:14px;color:var(--text-secondary);text-align:center;line-height:1.6}.camera-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:18px 24px;background:var(--accent);color:#fff;border:none;border-radius:28px;font-size:17px;font-weight:700;cursor:pointer}.camera-btn:hover{background:var(--accent-light)}.scan-hint{font-size:13px;color:var(--text-muted);margin-top:8px}.steps-info{display:flex;justify-content:center;gap:8px}.step-badge{gap:6px;padding:8px 12px;background:var(--surface);border-radius:20px}.step-badge,.step-badge-num{display:flex;align-items:center}.step-badge-num{justify-content:center;width:20px;height:20px;background:var(--accent);color:#fff;border-radius:10px;font-size:11px;font-weight:700}.step-badge-text{font-size:12px;font-weight:500;color:var(--text)}.success-badge{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 16px;background:var(--positive);border-radius:12px;color:#fff}.success-badge-icon{font-size:20px}.success-badge-text{font-size:14px;font-weight:600}.result-recipe-card{display:flex;align-items:center;gap:16px;padding:20px;background:var(--surface);border-radius:20px}.result-recipe-img{display:flex;align-items:center;justify-content:center;width:72px;height:72px;background:var(--accent-soft);border-radius:16px;font-size:36px;flex-shrink:0}.result-recipe-info{display:flex;flex-direction:column;gap:4px}.result-recipe-name{font-size:16px;font-weight:700;color:var(--text)}.result-recipe-meta{font-size:13px;color:var(--text-secondary)}.image-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;margin:16px 0}.image-item{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden}.image-item img{width:100%;height:100%;object-fit:cover}.remove-button{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:12px;background:rgba(0,0,0,.6);color:#fff;border:none;font-size:14px;cursor:pointer}.error-message,.remove-button{display:flex;align-items:center;justify-content:center}.error-message{flex-direction:column;flex:1 1;gap:8px;padding:0 24px;text-align:center}.error-icon{font-size:48px}.error-title{font-size:18px;font-weight:700;color:var(--text)}.error-desc{font-size:14px;color:var(--text-secondary);line-height:1.6}.error-message .cta-btn{margin-top:16px}.trial-info{text-align:center;font-size:13px;color:var(--text-secondary);padding:0}.back-link{display:block;width:100%;padding:14px;background:var(--surface);border:2px solid var(--border);color:var(--text);border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;text-align:center;text-decoration:none}.back-link:hover{border-color:var(--accent)}