@import"https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;600;700&family=DM+Sans:wght@400;500;600&display=swap";.meal-card[data-v-abe4ddd8]{background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius);padding:18px 20px;transition:border-color var(--transition),box-shadow var(--transition)}.meal-card[data-v-abe4ddd8]:hover{border-color:#d4c4b0;box-shadow:var(--shadow-sm)}.meal-card.has-plan[data-v-abe4ddd8]{border-left:4px solid var(--accent-alt)}.meal-card__header[data-v-abe4ddd8]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.meal-card__dish[data-v-abe4ddd8]{margin-bottom:14px}.dish-list[data-v-abe4ddd8]{display:flex;flex-direction:column;gap:6px}.dish-item[data-v-abe4ddd8]{display:flex;align-items:baseline;gap:8px}.dish-name[data-v-abe4ddd8]{font-family:var(--font-serif);font-size:1.25rem;font-weight:600;color:var(--ink)}.dish-name.placeholder[data-v-abe4ddd8]{color:var(--ink-muted);font-style:italic}.dish-remark[data-v-abe4ddd8]{font-size:.8rem;color:var(--ink-muted);font-style:italic}.dish-remark[data-v-abe4ddd8]:before{content:"· "}.dish-edit-list[data-v-abe4ddd8]{display:flex;flex-direction:column;gap:8px;width:100%}.dish-edit-row[data-v-abe4ddd8]{display:flex;align-items:center;gap:6px}.dish-input[data-v-abe4ddd8]{flex:1}.remark-input[data-v-abe4ddd8]{max-width:160px;font-size:.85rem}@media (max-width: 480px){.dish-edit-row[data-v-abe4ddd8]{flex-direction:column;align-items:stretch;position:relative;padding-right:34px}.dish-input[data-v-abe4ddd8],.remark-input[data-v-abe4ddd8]{max-width:100%;width:100%}.remove-btn[data-v-abe4ddd8]{position:absolute;top:8px;right:0}}.remove-btn[data-v-abe4ddd8]{background:none;border:1px solid var(--border);border-radius:50%;width:26px;height:26px;cursor:pointer;font-size:1rem;color:var(--ink-muted);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition)}.remove-btn[data-v-abe4ddd8]:hover{color:#b91c1c;border-color:#fca5a5;background:#fff0ee}.add-dish-btn[data-v-abe4ddd8]{background:none;border:1px dashed var(--border);border-radius:var(--radius-sm);padding:6px 12px;cursor:pointer;font-size:.85rem;color:var(--ink-muted);transition:all var(--transition)}.add-dish-btn[data-v-abe4ddd8]:hover{border-color:var(--accent);color:var(--accent);background:var(--bg-warm)}.meal-card__actions[data-v-abe4ddd8]{display:flex;align-items:center;justify-content:space-between;gap:8px}.actions-left[data-v-abe4ddd8]{display:flex;align-items:center;gap:8px}.actions-right[data-v-abe4ddd8]{display:flex;align-items:center;gap:4px;opacity:0;transition:opacity var(--transition)}.meal-card:hover .actions-right[data-v-abe4ddd8]{opacity:1}@media (hover: none){.actions-right[data-v-abe4ddd8]{opacity:1}}.icon-action-btn[data-v-abe4ddd8]{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 10px;cursor:pointer;font-size:.8rem;color:var(--ink-muted);transition:all var(--transition);white-space:nowrap}.icon-action-btn[data-v-abe4ddd8]:hover{border-color:var(--accent);color:var(--accent);background:var(--bg-warm)}.icon-action-btn[data-v-abe4ddd8]:disabled{cursor:default;opacity:.5}.done-tag[data-v-abe4ddd8]{font-size:.85rem;color:var(--green);font-weight:600}.home-header[data-v-5399677a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px}@media (max-width: 480px){.home-header[data-v-5399677a]{flex-direction:column;align-items:flex-start}.generate-btn[data-v-5399677a]{width:100%;justify-content:center}}.meals-grid[data-v-5399677a]{display:flex;flex-direction:column;gap:12px}.error-banner[data-v-5399677a]{background:#fff0ee;border:1px solid #fca5a5;color:#b91c1c;border-radius:var(--radius-sm);padding:10px 14px;font-size:.875rem;margin-bottom:16px}.progress-card[data-v-5399677a]{padding:16px 20px}.progress-label[data-v-5399677a]{font-size:.875rem;font-weight:600;color:var(--ink-soft)}.progress-bar[data-v-5399677a]{height:6px;background:var(--border);border-radius:99px;margin-top:10px;overflow:hidden}.progress-fill[data-v-5399677a]{height:100%;background:linear-gradient(90deg,var(--accent-alt),var(--accent));border-radius:99px;transition:width .4s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #faf7f2;--bg-card: #ffffff;--bg-warm: #fff8ee;--ink: #1a1208;--ink-soft: #5a4a35;--ink-muted: #9e8e78;--accent: #d4501a;--accent-alt: #e8a030;--green: #3a7d44;--border: #ede5d8;--shadow-sm: 0 2px 8px rgba(50,30,10,.07);--shadow-md: 0 6px 24px rgba(50,30,10,.1);--radius: 14px;--radius-sm: 8px;--font-serif: "Noto Serif SC", serif;--font-sans: "DM Sans", sans-serif;--transition: .18s ease}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg);color:var(--ink);min-height:100vh;-webkit-font-smoothing:antialiased}.app-shell{max-width:680px;margin:0 auto;padding:0 20px 80px}.nav{display:flex;align-items:center;justify-content:space-between;padding:20px 0 24px;border-bottom:1px solid var(--border);margin-bottom:28px}.nav-logo{font-family:var(--font-serif);font-size:1.25rem;font-weight:700;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:8px}.nav-logo span{color:var(--accent)}.nav-links{display:flex;gap:4px}.nav-link{font-size:.875rem;font-weight:500;color:var(--ink-soft);text-decoration:none;padding:6px 12px;border-radius:99px;transition:background var(--transition),color var(--transition)}.nav-link:hover,.nav-link.active{background:var(--bg-warm);color:var(--accent)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-sans);font-size:.9rem;font-weight:600;padding:10px 20px;border-radius:99px;border:none;cursor:pointer;transition:all var(--transition);white-space:nowrap}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#b84015;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-ghost{background:transparent;color:var(--ink-soft);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg-warm);color:var(--ink)}.btn-sm{font-size:.8rem;padding:6px 14px}.btn:disabled{opacity:.5;pointer-events:none}.input{width:100%;font-family:var(--font-sans);font-size:.95rem;padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--ink);transition:border-color var(--transition);outline:none}.input:focus{border-color:var(--accent);background:#fff}textarea.input{resize:vertical;min-height:80px}.badge{display:inline-flex;align-items:center;font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:99px;letter-spacing:.02em}.badge-planned{background:#fff3e0;color:#b45309}.badge-done{background:#e8f5e9;color:var(--green)}.badge-skipped{background:#f3f4f6;color:#6b7280}.stars{display:flex;gap:3px}.star{font-size:1.2rem;cursor:pointer;transition:transform .1s;color:#ddd}.star.active{color:var(--accent-alt)}.star:hover{transform:scale(1.2)}.divider{height:1px;background:var(--border);margin:20px 0}.text-muted{color:var(--ink-muted);font-size:.875rem}.text-accent{color:var(--accent)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.meal-label{font-family:var(--font-serif);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:4px}.page-title{font-family:var(--font-serif);font-size:1.6rem;font-weight:700;color:var(--ink);line-height:1.2}.page-subtitle{font-size:.9rem;color:var(--ink-muted);margin-top:4px}@media (max-width: 480px){.app-shell{padding:0 14px 80px}.nav{padding:14px 0 18px;margin-bottom:20px}.page-title{font-size:1.35rem}.card{padding:16px}}.fade-enter-active,.fade-leave-active{transition:opacity .25s ease}.fade-enter-from,.fade-leave-to{opacity:0}.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;margin:40px auto}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:48px 20px;color:var(--ink-muted)}.empty-state .emoji{font-size:3rem;margin-bottom:12px}.empty-state p{font-size:.95rem}
