.recipe-list{display:flex;flex-direction:column;gap:24px}.list-header{display:flex;align-items:baseline;gap:12px}.list-header h2{font-size:1.6rem;font-weight:700;letter-spacing:-.02em}.list-count{color:var(--color-text-muted);font-size:.9rem}.search-bar{position:relative}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:1rem;opacity:.5}.search-bar input{width:100%;padding:12px 16px 12px 42px;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.95rem;background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color .2s}.search-bar input:focus{border-color:var(--color-accent)}.empty-state{text-align:center;padding:48px 16px;color:var(--color-text-muted)}.cards{display:grid;gap:16px}.recipe-card{display:flex;gap:20px;align-items:flex-start;padding:20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}@media(hover:hover){.recipe-card{transition:box-shadow .2s,border-color .2s}.recipe-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-accent)}}.recipe-card:active{box-shadow:var(--shadow-md);border-color:var(--color-accent)}.card-emoji{font-size:2.4rem;flex-shrink:0;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--color-accent-light);border-radius:12px}.card-body{flex:1;min-width:0}.card-title{font-size:1.1rem;font-weight:600;margin-bottom:2px}.card-subtitle{font-size:.9rem;color:var(--color-text-muted);margin-bottom:10px}.card-meta{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--color-text-muted)}.tag{background:var(--color-tag-bg);padding:2px 10px;border-radius:20px;font-weight:500;font-size:.8rem}.meta-sep{opacity:.4}.recipe-detail{display:flex;flex-direction:column;gap:32px}.detail-top-bar{display:flex;justify-content:space-between;align-items:center}.back-button{font-size:.9rem;color:var(--color-accent);font-weight:500;padding:6px 0;align-self:flex-start;transition:opacity .2s}.back-button:hover{opacity:.7}.share-button{display:flex;align-items:center;gap:6px;padding:8px 14px;font-size:.85rem;font-weight:600;color:var(--color-accent);background:var(--color-accent-light);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;transition:background .2s,border-color .2s}.share-button:hover{border-color:var(--color-accent);background:var(--color-surface)}.detail-header h2{font-size:1.8rem;font-weight:700;letter-spacing:-.02em;margin-bottom:4px}.detail-subtitle{font-size:1rem;color:var(--color-text-muted);margin-bottom:12px}.detail-description{font-size:.95rem;line-height:1.7;color:var(--color-text);margin-bottom:20px}.detail-source{display:inline-block;font-size:.88rem;font-weight:500;color:var(--color-accent);text-decoration:none;margin-bottom:16px;transition:opacity .2s}.detail-source:hover{opacity:.7;text-decoration:underline}.detail-meta{display:flex;flex-wrap:wrap;gap:12px}.meta-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 16px;display:flex;flex-direction:column;align-items:center;min-width:80px}.meta-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-weight:600}.meta-value{font-size:.95rem;font-weight:600;margin-top:2px}.detail-section h3{font-size:1.2rem;font-weight:700;margin-bottom:16px;letter-spacing:-.01em}.ingredient-group{margin-bottom:16px}.ingredient-group h4{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-accent);font-weight:600;margin-bottom:8px}.ingredient-group ul{list-style:none}.ingredient-group li{padding:8px 0;border-bottom:1px solid var(--color-border);font-size:.95rem}.ingredient-group li:last-child{border-bottom:none}.steps{list-style:none;counter-reset:step-counter;display:flex;flex-direction:column;gap:12px}.step{display:flex;gap:16px;align-items:flex-start;padding:16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;transition:opacity .2s,background .2s;-webkit-user-select:none;user-select:none}.step:hover{opacity:.85}.step.done{opacity:.5}.step.done .step-text{text-decoration:line-through}.step-number{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-accent);color:#fff;border-radius:50%;font-size:.85rem;font-weight:700}.step.done .step-number{background:var(--color-text-muted)}.step-content{flex:1;display:flex;flex-direction:column;gap:10px}.step-text{font-size:.95rem;line-height:1.6;padding-top:4px}.step-text strong{color:var(--color-accent);font-weight:700}.timer{position:relative;display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--color-tag-bg);border:1px solid var(--color-border);border-radius:8px;overflow:hidden;font-size:.9rem}.timer-running{border-color:var(--color-accent)}.timer-done{border-color:#3a9a5c;background:#eaf5ee}.timer-progress{position:absolute;left:0;top:0;bottom:0;background:var(--color-accent-light);transition:width 1s linear;pointer-events:none}.timer-done .timer-progress{background:#d4edda}.timer-display{position:relative;font-weight:700;font-variant-numeric:tabular-nums;min-width:48px}.timer-done .timer-display{color:#3a9a5c}.timer-btn{position:relative;padding:4px 10px;background:var(--color-accent);color:#fff;border-radius:6px;font-size:.95rem;line-height:1;transition:opacity .2s}.timer-btn:hover{opacity:.85}.timer-btn-reset{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border)}.timer-btn-reset:hover{background:var(--color-surface)}.timer-done .timer-btn{background:#3a9a5c}.video-list{display:flex;flex-direction:column;gap:10px}.video-card{display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);transition:border-color .2s,box-shadow .2s;text-decoration:none;color:inherit}.video-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-sm)}.video-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--color-accent);color:#fff;border-radius:50%;font-size:.85rem}.video-label{flex:1;font-weight:600;font-size:.95rem}.video-source{font-size:.8rem;color:var(--color-text-muted);font-weight:500;padding:3px 10px;background:var(--color-tag-bg);border-radius:20px}.step-tips{background:var(--color-accent-light);padding:10px 14px;border-radius:8px;display:flex;flex-direction:column;gap:6px}.step-tip{font-size:.88rem;line-height:1.5;color:var(--color-text);padding-left:22px;position:relative;margin:0}.step-tip:before{content:"💡";position:absolute;left:0;font-size:.82rem}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:16px 24px;position:sticky;top:0;z-index:10}.logo{display:flex;align-items:center;gap:10px}.logo-icon{font-size:28px}.logo h1{font-size:1.3rem;font-weight:700;letter-spacing:-.02em}.app-main{flex:1;max-width:960px;width:100%;margin:0 auto;padding:32px 24px 64px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #faf8f5;--color-surface: #ffffff;--color-text: #2c2c2c;--color-text-muted: #6b6b6b;--color-accent: #c45d3e;--color-accent-light: #f3e8e3;--color-border: #e8e4e0;--color-tag-bg: #f0ebe6;--radius: 12px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08)}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;font:inherit;color:inherit}ul,ol{list-style:none}
