:root{--cream:#fff8ec;--egg:#ffe9a8;--pink:#ffd3de;--pink-deep:#ff9fb6;--mint:#c6f0d8;--ink:#4a3f35;--ink-soft:#8a7b6c;--line:#ebdfc9;--white:#fff;--shadow-col:#4a3f3524;--font-hand:"Yomogi", cursive;--font-body:"Zen Maru Gothic", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--cream);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 8% 12%,#ffd3de59 0,#0000 45%),radial-gradient(circle at 92% 88%,#c6f0d84d 0,#0000 40%);background-attachment:fixed;min-height:100dvh}#root{justify-content:center;min-height:100dvh;display:flex}button,input,textarea{font-family:inherit}:focus-visible{outline:3px solid var(--pink-deep);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.login-screen{justify-content:center;align-items:center;width:100%;min-height:100dvh;padding:20px;display:flex}.login-card{background:var(--white);text-align:center;width:100%;max-width:320px;box-shadow:0 6px 0 var(--shadow-col);border-radius:24px;padding:36px 28px}.login-emoji{font-size:40px}.login-title{font-family:var(--font-hand);color:var(--ink);margin:10px 0 4px;font-size:26px;font-weight:400}.login-title span{color:var(--pink-deep);font-size:15px;display:block}.login-copy{color:var(--ink-soft);margin:8px 0 22px;font-size:12.5px}.login-input{border:1.5px solid var(--line);background:var(--cream);text-align:center;letter-spacing:.3em;border-radius:14px;width:100%;margin-bottom:14px;padding:14px;font-size:20px}.login-error{color:var(--pink-deep);margin:-6px 0 14px;font-size:12px}.login-btn{background:var(--ink);width:100%;color:var(--cream);cursor:pointer;border:none;border-radius:14px;padding:14px;font-size:15px;font-weight:700}.login-btn:disabled{background:var(--line);color:var(--ink-soft);cursor:not-allowed}.top-screen{flex-direction:column;width:100%;max-width:480px;min-height:100dvh;padding:40px 20px 110px;display:flex}.top-header{text-align:center;padding-top:8px}.top-logo-mark{font-size:40px;animation:4s ease-in-out infinite sway;display:inline-block}@keyframes sway{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}.top-title{font-family:var(--font-hand);color:var(--ink);letter-spacing:.02em;margin:10px 0 0;font-size:40px;font-weight:400;line-height:1.15}.top-title-sub{color:var(--pink-deep);margin-top:2px;font-size:22px;display:block}.top-copy{color:var(--ink-soft);max-width:280px;margin:12px auto 0;font-size:13.5px;line-height:1.7}.mood-section{margin-top:40px}.mood-question{text-align:center;margin:0 0 22px;font-size:19px;font-weight:700}.mood-question-row{justify-content:center;align-items:center;display:flex;position:relative}.mood-guide-btn{border:1.5px solid var(--line);background:var(--white);width:26px;height:26px;color:var(--ink-soft);cursor:pointer;border-radius:50%;font-size:13px;font-weight:700;position:absolute;top:-4px;right:0}.mood-question-accent{font-family:var(--font-hand);color:var(--pink-deep);padding:0 2px;font-size:26px}.mood-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.mood-card{cursor:pointer;box-shadow:0 6px 0 var(--shadow-col);-webkit-tap-highlight-color:transparent;border:none;border-radius:22px;flex-direction:column;align-items:center;gap:4px;padding:22px 14px 18px;transition:transform .15s,box-shadow .15s;display:flex;position:relative}.mood-card:hover{transform:translateY(-2px)}.mood-card:active{box-shadow:0 2px 0 var(--shadow-col);transform:translateY(3px)}.mood-emoji{font-size:34px;line-height:1}.mood-label{font-family:var(--font-hand);color:var(--ink);margin-top:2px;font-size:22px}.mood-sub{color:var(--ink-soft);font-size:11.5px}.top-footer-actions{flex-direction:column;align-items:center;gap:16px;margin-top:auto;padding-top:36px;display:flex}.ghost-link{color:var(--ink-soft);text-underline-offset:3px;cursor:pointer;background:0 0;border:none;padding:4px;font-size:13.5px;text-decoration:underline}.fab-save span:first-child{font-size:18px}.mood-guide-overlay{z-index:100;background:#4a3f3566;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.mood-guide-modal{background:var(--cream);border-radius:22px;width:100%;max-width:380px;padding:28px 22px 22px;position:relative}.mood-guide-close{background:var(--white);cursor:pointer;border:none;border-radius:50%;width:30px;height:30px;font-size:12px;position:absolute;top:14px;right:14px}.mood-guide-title{font-family:var(--font-hand);text-align:center;margin:0 0 18px;font-size:20px}.mood-guide-list{flex-direction:column;gap:14px;display:flex}.mood-guide-row{background:var(--white);border-radius:14px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.mood-guide-emoji{font-size:22px;line-height:1.3}.mood-guide-label{font-family:var(--font-hand);color:var(--ink);margin:0 0 3px;font-size:16px}.mood-guide-tags{color:var(--ink-soft);margin:0;font-size:11.5px;line-height:1.6}.recipe-card{background:var(--white);cursor:pointer;text-align:left;box-shadow:0 4px 0 var(--shadow-col);-webkit-tap-highlight-color:transparent;border:none;border-radius:18px;flex-direction:column;padding:0;transition:transform .15s;display:flex;overflow:hidden}.recipe-card:hover{transform:translateY(-2px)}.recipe-card:active{transform:translateY(2px)}.recipe-card-image-wrap{aspect-ratio:1;background:var(--line);width:100%;position:relative}.recipe-card-image{object-fit:cover;width:100%;height:100%;display:block}.recipe-card-image-fallback{width:100%;height:100%;color:var(--ink-soft);flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:22px;display:flex}.recipe-card-fallback-text{font-size:11px}.recipe-card-site{color:#fff;border-radius:999px;padding:4px 9px;font-size:10px;font-weight:700;line-height:1;position:absolute;top:8px;left:8px}.recipe-card-status{color:var(--ink);background:#ffffffeb;border-radius:999px;padding:4px 9px;font-size:10px;font-weight:700;position:absolute;bottom:8px;right:8px}.recipe-card-body{flex-direction:column;gap:6px;padding:10px 11px 12px;display:flex}.recipe-card-title{color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13px;font-weight:700;line-height:1.4;display:-webkit-box;overflow:hidden}.recipe-card-tags{flex-wrap:wrap;gap:4px;display:flex}.recipe-card-tag{font-family:var(--font-hand);color:var(--pink-deep);background:#fff0f4;border-radius:999px;padding:2px 7px;font-size:12px;line-height:1.5}.recipe-card-tag--more{color:var(--ink-soft);background:var(--line)}.list-screen{width:100%;max-width:480px;min-height:100dvh;padding:20px 20px 110px}.list-header{align-items:center;gap:12px;padding-top:4px;display:flex}.back-btn{background:var(--white);width:36px;height:36px;box-shadow:0 3px 0 var(--shadow-col);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;font-size:16px}.back-btn:active{box-shadow:0 1px 0 var(--shadow-col);transform:translateY(2px)}.list-title{font-family:var(--font-hand);margin:0;font-size:24px;font-weight:400}.filter-chip-row{margin-top:14px}.filter-chip{background:var(--pink);color:var(--ink);border-radius:999px;align-items:center;gap:8px;padding:8px 10px 8px 14px;font-size:13px;font-weight:700;display:inline-flex}.filter-chip button{cursor:pointer;background:#fff9;border:none;border-radius:50%;width:20px;height:20px;font-size:11px;line-height:1}.filter-chip-hint{color:var(--ink-soft);margin:8px 2px 0;font-size:11px;line-height:1.6}.tag-search{margin-top:20px}.tag-search-label{color:var(--ink-soft);margin:0 0 8px;font-size:12.5px;font-weight:700}.result-count{color:var(--ink-soft);margin:20px 0 10px;font-size:12px}.recipe-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.empty-state{text-align:center;background:var(--white);border-radius:20px;flex-direction:column;align-items:center;margin-top:10px;padding:50px 20px;display:flex}.empty-emoji{margin:0 0 6px;font-size:34px}.empty-text{color:var(--ink);margin:0;font-size:14px;font-weight:700}.empty-sub{color:var(--ink-soft);margin:6px 0 18px;font-size:12px}.empty-cta{background:var(--egg);color:var(--ink);cursor:pointer;border:none;border-radius:999px;padding:10px 18px;font-size:13px;font-weight:700}.fab-save{background:var(--ink);color:var(--cream);box-shadow:0 8px 20px var(--shadow-col);cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;gap:8px;width:calc(100% - 40px);max-width:440px;padding:15px 26px;font-size:15px;font-weight:700;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.fab-save:active{transform:translate(-50%)scale(.97)}.save-modal-overlay{z-index:100;background:#4a3f3566;justify-content:center;align-items:flex-end;animation:.15s fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.save-modal{background:var(--cream);border-radius:26px 26px 0 0;width:100%;max-width:480px;max-height:88vh;padding:24px 20px 32px;animation:.2s slide-up;position:relative;overflow-y:auto}@keyframes slide-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.modal-close{background:var(--white);cursor:pointer;border:none;border-radius:50%;width:32px;height:32px;font-size:13px;position:absolute;top:16px;right:16px}.modal-step{padding-top:8px}.modal-step--center{flex-direction:column;align-items:center;padding:50px 0;display:flex}.modal-heading{font-family:var(--font-hand);margin:0 0 4px;font-size:21px}.modal-sub{color:var(--ink-soft);margin:0 0 18px;font-size:12px}.url-input{border:1.5px solid var(--line);background:var(--white);border-radius:14px;width:100%;margin-bottom:16px;padding:14px 16px;font-size:14px}.primary-btn{background:var(--ink);width:100%;color:var(--cream);cursor:pointer;border:none;border-radius:14px;margin-top:20px;padding:15px;font-size:15px;font-weight:700}.primary-btn:disabled{background:var(--line);color:var(--ink-soft);cursor:not-allowed}.fetch-spinner{margin-bottom:14px;font-size:40px;animation:1s ease-in-out infinite bob}@keyframes bob{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-8px)rotate(4deg)}}.fetch-warning{background:var(--pink);color:var(--ink);border-radius:12px;margin-bottom:14px;padding:10px 14px;font-size:12.5px;line-height:1.6}.preview-card{background:var(--white);border-radius:16px;gap:0;display:flex;overflow:hidden}.preview-image{object-fit:cover;flex-shrink:0;width:92px;height:92px}.preview-image--fallback{background:var(--line);justify-content:center;align-items:center;font-size:26px;display:flex}.preview-body{flex-direction:column;flex:1;gap:8px;min-width:0;padding:12px;display:flex}.title-input{border:none;border-bottom:1.5px dashed var(--line);background:0 0;width:100%;padding:4px 0;font-size:13.5px;font-weight:700}.preview-site{color:#fff;border-radius:999px;align-self:flex-start;padding:3px 9px;font-size:10px;font-weight:700}.tag-heading{margin:20px 0 10px;font-size:13px;font-weight:700}.tag-heading-required{color:var(--pink-deep);font-size:11.5px;font-weight:400}.tag-hint{color:var(--pink-deep);margin:10px 0 0;font-size:11.5px}.detail-overlay{z-index:100;background:#4a3f3566;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.detail-modal{background:var(--cream);border-radius:26px 26px 0 0;width:100%;max-width:480px;max-height:90vh;animation:.2s slide-up;position:relative;overflow-y:auto}.modal-close{background:var(--white);cursor:pointer;z-index:2;border:none;border-radius:50%;width:32px;height:32px;font-size:13px;position:absolute;top:16px;right:16px}.detail-image{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.detail-body{padding:20px 20px 28px}.detail-site{color:#fff;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}.detail-title-row{justify-content:space-between;align-items:flex-start;gap:10px;margin:10px 0 12px;display:flex}.detail-title{margin:0;font-size:17px;font-weight:700;line-height:1.5}.detail-edit-btn{border:1.5px solid var(--line);background:var(--white);color:var(--ink-soft);cursor:pointer;white-space:nowrap;border-radius:999px;flex-shrink:0;padding:6px 11px;font-size:12px}.detail-tags{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.detail-tag{font-family:var(--font-hand);color:var(--pink-deep);background:#fff0f4;border-radius:999px;padding:3px 10px;font-size:13px}.detail-open-link{text-align:center;background:var(--ink);color:var(--cream);border-radius:14px;margin-bottom:22px;padding:14px;font-size:14px;font-weight:700;text-decoration:none;display:block}.detail-review-label{margin:0 0 10px;font-size:13px;font-weight:700}.detail-status-row{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.status-pill{border:1.5px solid var(--line);background:var(--white);color:var(--ink-soft);cursor:pointer;border-radius:999px;padding:8px 13px;font-size:12.5px}.status-pill--on{background:var(--mint);border-color:var(--mint);color:var(--ink);font-weight:700}.detail-delete{width:100%;color:var(--pink-deep);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:10px;font-size:13px;text-decoration:underline}.detail-edit-form{margin:10px 0 8px}.detail-title-input{border:1.5px solid var(--line);background:var(--white);box-sizing:border-box;border-radius:12px;width:100%;margin-bottom:16px;padding:12px 14px;font-size:14px;font-weight:700}.detail-tags-edit-label{margin:0 0 10px;font-size:13px;font-weight:700}.detail-tags-edit-required{color:var(--pink-deep);font-size:11.5px;font-weight:400}.detail-tags-edit-hint{color:var(--pink-deep);margin:10px 0 0;font-size:11.5px}.tag-pill-row{flex-wrap:wrap;gap:8px;display:flex}.tag-pill{font-family:var(--font-hand);border:1.5px solid var(--line);background:var(--white);color:var(--ink-soft);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:999px;padding:6px 13px;font-size:14px}.tag-pill--on{background:var(--pink-deep);border-color:var(--pink-deep);color:#fff}.detail-edit-actions{gap:10px;margin-top:22px;display:flex}.detail-edit-cancel{border:1.5px solid var(--line);background:var(--white);color:var(--ink-soft);cursor:pointer;border-radius:14px;flex:1;padding:13px;font-size:14px;font-weight:700}.detail-edit-save{background:var(--ink);color:var(--cream);cursor:pointer;border:none;border-radius:14px;flex:2;padding:13px;font-size:14px;font-weight:700}.detail-edit-save:disabled{background:var(--line);color:var(--ink-soft);cursor:not-allowed}
