:root{--bg: #f7f5f0;--surface: #ffffff;--text: #1c1c1c;--muted: #6b6b6b;--border: #e3e0d8;--primary: #1b7a4d;--primary-text: #ffffff;--yes: #1b7a4d;--skip: #b3413a;--star: #d9a441;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--bg: #14161a;--surface: #1e2126;--text: #f0efe9;--muted: #9a9a9a;--border: #2c3038;--primary: #2fa876;--primary-text: #05130c}}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent}.app{max-width:480px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.centered{display:flex;align-items:center;justify-content:center;flex:1;min-height:60vh;padding:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px;width:100%}.login-card{text-align:center}.btn{display:inline-block;padding:12px 20px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1rem;text-decoration:none;cursor:pointer;margin-top:10px;width:100%;text-align:center}.btn-primary{background:var(--primary);color:var(--primary-text);border-color:var(--primary);font-weight:600}.btn-yes{background:var(--yes);color:#fff;border-color:var(--yes)}.btn-skip{background:var(--skip);color:#fff;border-color:var(--skip)}.header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.header-title{background:none;border:none;font-size:1.1rem;font-weight:700;color:var(--text);cursor:pointer}.header-actions{display:flex;align-items:center;gap:10px}.link{background:none;border:none;color:var(--primary);cursor:pointer;font-size:.95rem}.link:disabled{color:var(--muted);cursor:default}.link.active{text-decoration:underline}.avatar{width:28px;height:28px;border-radius:50%}.room-picker{display:flex;flex-direction:column;gap:16px;width:100%;padding:24px}.room-card{display:flex;align-items:center;gap:12px;padding:24px;font-size:1.2rem;font-weight:600;border-radius:16px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.room-emoji{font-size:2rem}.room-card-wrap{display:flex;flex-direction:column;gap:4px}.room-card-wrap .room-card{width:100%}.room-reset-link{align-self:center;font-size:.8rem;padding:4px}.add-recipe-link{text-align:center;font-size:.95rem;padding:8px}.room{display:flex;flex-direction:column;flex:1}.room-header{display:flex;align-items:center;gap:12px;padding:12px 16px}.room-header h2{margin:0;flex:1}.partner-badge{font-size:.75rem;color:var(--muted)}.partner-line{font-size:.85rem;margin:0}.room-header+.partner-line{padding:0 16px;margin:-4px 0 8px}.filter-form{display:flex;flex-direction:column;gap:16px;padding:16px}.filter-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.9rem}.filter-form input[type=text],.filter-form input[type=number],.filter-form select,.filter-form textarea{padding:10px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1rem;font-family:inherit}.filter-form textarea{resize:vertical}.filter-form .error{color:var(--skip);font-weight:600}.checkbox-label{flex-direction:row!important;align-items:center;gap:8px!important}.checkbox-label input[type=checkbox]{width:20px;height:20px;accent-color:var(--primary)}.filter-form fieldset{border:1px solid var(--border);border-radius:12px;padding:12px}.filter-form legend{font-weight:600;padding:0 6px}.row{display:flex;gap:12px}.row label,.row .time-field{flex:1;min-width:0}.radio-group{display:flex;flex-wrap:wrap;gap:8px}.radio-pill{border:1px solid var(--border);border-radius:999px;padding:8px 14px;cursor:pointer;font-weight:400;font-size:.9rem}.radio-pill input{display:none}.radio-on{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.chip-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip{border:1px solid var(--border);border-radius:999px;padding:6px 12px;background:var(--surface);color:var(--text);cursor:pointer;font-size:.85rem;text-transform:capitalize}.chip-on{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.pairing-block{border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:12px}.pairing-members{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.pairing-members .chip{display:flex;align-items:center;gap:6px;cursor:default;text-transform:none}.chip-remove{background:none;border:none;color:inherit;opacity:.6;cursor:pointer;font-size:.8rem;padding:0;line-height:1}.chip-remove:hover{opacity:1}.pairing-block .row{align-items:center}.pairing-block .row select{flex:1;min-width:0;padding:8px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.pairing-block .row .btn{width:auto;margin-top:0;padding:8px 14px}.stepper{display:flex;align-items:center;justify-content:center;gap:20px;padding:6px 0}.stepper-btn{width:48px;height:48px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.stepper-btn:disabled{opacity:.35;cursor:default}.stepper-value{font-size:1.6rem;font-weight:700;min-width:2.5ch;text-align:center}.time-field-label{font-weight:600;font-size:.9rem;margin-bottom:6px}.time-field .chip-grid{margin-top:0;margin-bottom:8px}.time-custom-input{width:100%;padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.9rem}.ingredient-row{display:flex;gap:6px;align-items:center;margin-bottom:8px}.ingredient-row .ingredient-name{flex:2;min-width:0}.ingredient-row .ingredient-amount{flex:1;min-width:0}.ingredient-row select{padding:10px 6px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.remove-ingredient{flex:none;width:40px;padding:8px;border-radius:10px}.mode-tabs{display:flex;gap:6px;margin:4px 0 14px;border-bottom:1px solid var(--border)}.tab{flex:1;background:none;border:none;padding:10px 4px;color:var(--muted);font-size:.85rem;cursor:pointer;border-bottom:2px solid transparent}.tab-on{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.checklist-progress{text-align:center;color:var(--muted);font-size:.85rem;margin-bottom:8px}.checklist ul{list-style:none;padding:0;margin:0}.checklist li{border-bottom:1px solid var(--border)}.checklist li label{display:flex;align-items:center;gap:12px;padding:12px 4px;cursor:pointer}.checklist li input[type=checkbox]{width:22px;height:22px;flex:none;accent-color:var(--primary)}.checklist li.checked span{text-decoration:line-through;opacity:.55}.deck{display:flex;flex-direction:column;flex:1;padding:12px 16px;gap:12px}.deck-progress{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:.85rem;padding:0 4px}.deck-progress>div{display:flex;gap:12px}.recipe-card h3{margin-top:0}.badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.badge{background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:.75rem;text-transform:capitalize}.badge-veg{background:#eaf6ec;border-color:#bfe3c5;color:#1b6b2e}.badge-healthy{background:#e6f3fa;border-color:#b8dcee;color:#14608a}.badge-web{background:#f3ecfa;border-color:#ddc7ee;color:#6b3fa0}.badge-explore{background:#fff4e0;border-color:#f0d49a;color:#8a5a00}@media (prefers-color-scheme: dark){.badge-veg{background:#16301d;border-color:#2c5c37;color:#7fd996}.badge-healthy{background:#122c38;border-color:#235870;color:#7fc9e8}.badge-web{background:#2a1f38;border-color:#4a3565;color:#cba3e8}.badge-explore{background:#382d16;border-color:#6b5525;color:#f0c979}}.tag-badge{cursor:pointer;font:inherit}.tag-badge.tag-like{background:#e4f6e9;border-color:#8fd4a3;color:#1b6b2e}.tag-badge.tag-dislike{background:#fbe6e4;border-color:#e7a49d;color:#a3352b}@media (prefers-color-scheme: dark){.tag-badge.tag-like{background:#16301d;border-color:#2c5c37;color:#7fd996}.tag-badge.tag-dislike{background:#391917;border-color:#6e332c;color:#f0a89f}}.tag-hint{font-size:.7rem;margin:-6px 0 10px}.note-section{margin-bottom:12px}.note-box{background:#fff8e1;border:1px solid #f0d878;border-radius:12px;padding:10px 12px;font-size:.9rem;margin-bottom:8px;color:#6b5405}@media (prefers-color-scheme: dark){.note-box{background:#3a300f;border-color:#6b5405;color:#f0d878}}.note-edit{display:flex;flex-direction:column;gap:8px}.note-edit textarea{padding:10px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:inherit;font-size:.9rem;resize:vertical}.note-edit .row .btn{width:auto;flex:1}.alt-list{display:flex;flex-direction:column;gap:10px;margin-top:8px}.alt-card{padding:12px;display:flex;flex-direction:column;gap:6px}.alt-card .btn{margin-top:4px}.healthy-explanation{font-size:.85rem;margin:-4px 0 12px}.healthy-ingredients-detail{margin:-4px 0 12px;font-size:.85rem}.healthy-ingredients-detail summary{cursor:pointer;font-weight:600;color:var(--text)}.healthy-ingredients-list{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:6px}.healthy-ingredients-list li{color:var(--muted)}.healthy-ingredients-list li strong{color:var(--text);text-transform:capitalize}.ingredients{padding-left:20px;margin:8px 0}.instructions{padding-left:20px}details summary{cursor:pointer;font-weight:600;margin-top:8px}.swipe-actions{display:flex;flex-direction:column;gap:10px}.swipe-actions .row{display:flex;align-items:center;gap:8px}.swipe-actions .row .btn{width:auto;flex:1;margin-top:0}.btn-picture{width:auto;align-self:flex-start;margin:4px 0 12px;padding:8px 14px;font-size:.85rem}.rate-row{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:10px 8px}.rate-label{font-size:.85rem;color:var(--muted);min-height:1.2em;text-align:center}.stars{display:flex;gap:4px}.star{background:none;border:none;font-size:2.4rem;line-height:1;color:var(--border);cursor:pointer;padding:6px 4px;min-width:44px;min-height:44px;transition:color .1s,transform .1s}.star:hover,.star:focus-visible{transform:scale(1.15)}.star-on{color:var(--star)}.match-card{text-align:left}.match-card h2{margin-top:0;text-align:center}.match-card h1{text-align:center;font-size:1.6rem}.admin-panel{padding:16px}.user-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.search-result-row{width:100%;background:none;border:none;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;font:inherit;color:inherit}.user-info{flex:1}.user-row .btn{width:auto;margin-top:0;padding:8px 14px}.muted{color:var(--muted);font-weight:400}@media (min-width: 600px){.app{border-left:1px solid var(--border);border-right:1px solid var(--border)}}
