html{-webkit-text-size-adjust:100%;background:#f6f8fb;touch-action:manipulation}html.cap-native{font-size:14px}html.cap-native,html.cap-native *,html.cap-native body{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}html.cap-native img,html.cap-native svg{-webkit-user-drag:none;user-drag:none;-webkit-touch-callout:none}html.cap-native [contenteditable=true],html.cap-native input,html.cap-native textarea{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0);touch-action:manipulation}#root,body{background:#f6f8fb}#root{min-height:100%}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.signin-page{background:linear-gradient(135deg,#edf2ff,#f5f7fb);box-sizing:border-box;justify-content:center;min-height:100vh;min-height:100dvh;padding:calc(32px + env(safe-area-inset-top, 0px)) 16px calc(32px + env(safe-area-inset-bottom, 0px))}.signin-card,.signin-page{align-items:center;display:flex}.signin-card{background:#fff;border-radius:32px;box-shadow:0 30px 60px rgba(15,23,42,.12);flex-direction:column;max-width:520px;padding:48px 40px;width:100%}.signin-logo{height:auto;margin-bottom:40px;width:180px}.signin-form{width:100%}.signin-field{margin-bottom:18px;width:100%}.signin-label{color:#334155;display:block;font-size:.9rem;font-weight:600;margin-bottom:8px;text-align:left}.signin-input{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:14px;box-sizing:border-box;font-size:.95rem;padding:14px 16px;transition:border-color .2s,background .2s;width:100%}.signin-input:focus{background:#fff;border-color:#4c6ef5;outline:none}.signin-validation-msg{color:#f97316;font-size:.8rem;margin:6px 0 0;text-align:left}.signin-submit-button{background:linear-gradient(120deg,#4c6ef5,#5ed4f3);border:none;border-radius:16px;box-shadow:0 18px 30px rgba(76,110,245,.32);color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:12px;padding:16px;width:100%}.signin-submit-button:disabled{opacity:.4;pointer-events:none}.signin-divider{align-items:center;color:#94a3b8;display:flex;font-size:.85rem;letter-spacing:.1em;margin:28px 0;text-transform:uppercase;width:100%}.signin-divider:after,.signin-divider:before{background:#e2e8f0;content:"";flex:1 1;height:1px;margin:0 12px}.signin-signup-text{color:#94a3b8;font-size:.9rem;margin-top:32px;text-align:center;width:100%}.signin-signup-link{background:none;border:none;color:#2563eb;cursor:pointer;font-weight:600}.signin-continue-guest{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;color:#475569;cursor:pointer;display:block;font-size:.9rem;font-weight:600;margin-top:14px;padding:10px 14px;transition:background .15s,border-color .15s;width:100%}.signin-continue-guest:hover{background:#f1f5f9;border-color:#cbd5e1}.signin-legal-links{align-items:center;display:flex;gap:8px;justify-content:center;margin:16px 0 0;width:100%}.signin-legal-sep{color:#cbd5e1;font-size:.85rem}.signin-legal-link{background:none;border:none;color:#64748b;cursor:pointer;font-size:.8rem;font-weight:600;padding:0;text-decoration:underline;text-underline-offset:2px}.signin-modal-overlay{align-items:center;background:rgba(15,23,42,.35);display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:1000}.signin-modal{background:#fff;border-radius:18px;box-shadow:0 18px 50px rgba(2,6,23,.18);padding:22px 20px;width:min(560px,100%)}.signin-modal-title{color:#0f172a;font-size:1.1rem;font-weight:800;margin-bottom:10px}.signin-modal-body{color:#334155;font-size:.98rem;line-height:1.6;margin-bottom:16px}.signin-modal-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.signin-modal-button{background:#f1f5f9;border:none;border-radius:12px;color:#334155;cursor:pointer;font-weight:700;padding:10px 16px;transition:opacity .15s}.signin-modal-button:hover{opacity:.95}.signin-modal-button:disabled{cursor:not-allowed;opacity:.65}.signin-modal-button-primary{background:linear-gradient(120deg,#4c6ef5,#5ed4f3);color:#fff}.signin-modal--done{text-align:center}.signin-modal-done-icon{font-size:2rem;line-height:1;margin-bottom:8px}.signin-modal-actions--stack{align-items:stretch;flex-direction:column;justify-content:stretch}.signin-modal-button-block{width:100%}.signin-modal-button-muted{background:transparent;color:#64748b;font-weight:600}.app-toast{align-items:center;background:rgba(30,41,59,.92);border-radius:12px;bottom:28px;box-shadow:0 8px 24px rgba(15,23,42,.25);color:#f8fafc;display:inline-flex;font-size:.95rem;font-weight:500;gap:10px;left:50%;max-width:min(92vw,420px);opacity:0;padding:12px 20px;pointer-events:none;position:fixed;text-align:left;-webkit-transform:translateX(-50%) translateY(12px);transform:translateX(-50%) translateY(12px);transition:opacity .25s ease,-webkit-transform .25s ease;transition:opacity .25s ease,transform .25s ease;transition:opacity .25s ease,transform .25s ease,-webkit-transform .25s ease;z-index:10000}.app-toast--visible{opacity:1;-webkit-transform:translateX(-50%) translateY(0);transform:translateX(-50%) translateY(0)}.app-toast__content{flex:1 1;min-width:0;text-align:left}.app-toast__action{background:rgba(248,250,252,.12);border:1px solid rgba(226,232,240,.35);border-radius:999px;color:#fff;cursor:pointer;flex:0 0 auto;font-size:.85rem;font-weight:800;padding:8px 12px;pointer-events:auto}.app-toast__action:active{opacity:.88}.signup-page{align-items:center;background:linear-gradient(135deg,#edf2ff,#f5f7fb);box-sizing:border-box;display:flex;justify-content:center;min-height:100vh;min-height:100dvh;padding:calc(32px + env(safe-area-inset-top, 0px)) 16px calc(32px + env(safe-area-inset-bottom, 0px))}.signup-card{background:#fff;border-radius:32px;box-shadow:0 30px 60px rgba(15,23,42,.12);max-width:520px;padding:48px 40px;width:100%}.signup-heading,.signup-val{color:#0f172a;font-size:1.6rem;margin:0}.signup-subheading{color:#64748b;font-size:.95rem;margin:8px 0 32px}.signup-field{margin-bottom:18px}.signup-label{color:#334155;display:block;font-size:.9rem;font-weight:600;margin-bottom:8px}.signup-input{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:14px;font-size:.95rem;padding:14px 16px;transition:border-color .2s,background .2s;width:342px}.signup-input:focus{background:#fff;border-color:#4c6ef5;outline:none}.signup-validation-msg{color:#f97316;font-size:.8rem;margin:6px 0 0}.signup-submit-button{background:linear-gradient(120deg,#4c6ef5,#5ed4f3);border:none;border-radius:16px;box-shadow:0 18px 30px rgba(76,110,245,.32);color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:12px;padding:16px;width:100%}.signup-submit-button:disabled{opacity:.4;pointer-events:none}.signup-divider{align-items:center;color:#94a3b8;display:flex;font-size:.85rem;letter-spacing:.1em;margin:28px 0;text-transform:uppercase}.signup-divider:after,.signup-divider:before{background:#e2e8f0;content:"";flex:1 1;height:1px;margin:0 12px}.signup-social-group{display:flex;flex-direction:column;gap:12px}.signup-social-button{border:none;border-radius:14px;cursor:pointer;font-size:.95rem;font-weight:600;padding:14px;width:100%}.signup-social-button.kakao{background:#fee500;color:#3c1e1e}.signup-social-button.google{background:#f1f5f9;color:#1f2937}.signup-signin-text{color:#94a3b8;font-size:.9rem;margin-top:32px;text-align:center}.signup-signin-link{background:none;border:none;color:#2563eb;cursor:pointer;font-weight:600}.signup-legal-links{align-items:center;display:flex;gap:8px;justify-content:center;margin:18px 0 0;width:100%}.signup-legal-sep{color:#cbd5e1;font-size:.85rem}.signup-legal-link{background:none;border:none;color:#64748b;cursor:pointer;font-size:.8rem;font-weight:600;padding:0;text-decoration:underline;text-underline-offset:2px}.nickname-page{align-items:center;background:linear-gradient(135deg,#f0f4ff,#f7fbff);box-sizing:border-box;display:flex;justify-content:center;min-height:100vh;min-height:100dvh;padding:calc(32px + env(safe-area-inset-top, 0px)) 16px calc(32px + env(safe-area-inset-bottom, 0px))}.nickname-card{background:#fff;border-radius:28px;box-shadow:0 24px 48px rgba(15,23,42,.12);max-width:420px;padding:40px 36px;width:100%}.nickname-heading{color:#0f172a;font-size:1.5rem;margin:0}.nickname-subheading{color:#64748b;font-size:.95rem;margin:8px 0 28px}.nickname-field{margin-bottom:20px}.nickname-label{color:#334155;display:block;font-weight:600;margin-bottom:8px}.nickname-input{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:14px;font-size:.95rem;padding:14px 16px;width:100%}.nickname-input:focus{background:#fff;border-color:#4c6ef5;outline:none}.nickname-validation{color:#f97316;font-size:.8rem;margin:6px 0 0}.nickname-submit-button{background:linear-gradient(120deg,#4c6ef5,#5ed4f3);border:none;border-radius:14px;box-shadow:0 15px 28px rgba(76,110,245,.3);color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:14px;width:100%}.nickname-submit-button:disabled{opacity:.4;pointer-events:none}.nickname-skip-button{background:#f1f5f9;border:none;border-radius:14px;color:#475569;cursor:pointer;font-size:.95rem;font-weight:600;margin-top:18px;padding:14px;width:100%}.fridge-page-wrapper{--fridge-item-icon-size:40px;--fridge-item-icon-font-size:20px;--fridge-item-icon-radius:14px;background:#f6f8fb;box-sizing:border-box;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;padding:calc(20px + env(safe-area-inset-top, 0px)) 24px 24px}.fridge-page-with-dock{padding-bottom:24px}.fridge-sort-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;width:100%}.fridge-sort-label{color:#475569;font-size:.9rem;font-weight:600}.fridge-sort-select{background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;font-size:.9rem;min-width:200px;padding:8px 12px}.fridge-sort-toolbar--compact{margin-bottom:-4px}.fridge-sort-toolbar--compact .fridge-sort-label{color:#94a3b8;font-size:.8rem;font-weight:600}.fridge-sort-select--compact{border-color:#e2e8f0;border-radius:8px;color:#64748b;font-size:.72rem;max-width:min(42vw,132px);min-width:0;padding:3px 6px;width:auto}.fridge-item-dday{color:#64748b;font-size:.68rem;font-weight:700;line-height:1.2;margin-top:2px}.fridge-item-text-col{align-items:center;display:flex;flex-direction:column;gap:2px;min-width:0;width:100%}.fridge-item-text-col .fridge-item-dday{margin-top:0}.fridge-item-dday--urgent{color:#dc2626}.fridge-dock-fixed{background:linear-gradient(180deg,rgba(246,248,251,0),rgba(246,248,251,.92) 18%,#f6f8fb 40%);border-top:1px solid #e2e8f0;bottom:0;box-shadow:0 -8px 24px rgba(15,23,42,.06);left:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom, 0));position:fixed;right:0;z-index:35}.fridge-dock-inner{align-items:stretch;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 auto;max-width:520px}.fridge-dock-inner .fridge-dock-text-btn{flex:1 1;min-width:0}.fridge-dock-icon-btn{align-items:center;background:#eef2ff;border:1.5px solid #c7d2fe;border-radius:12px;box-sizing:border-box;color:#4338ca;cursor:pointer;display:inline-flex;flex:0 0 auto;justify-content:center;min-height:48px;padding:0;width:48px}.fridge-dock-icon-btn:active{opacity:.88}.fridge-modal-input-readonly{background:#f1f5f9!important;color:#475569}.fridge-header{align-items:stretch;display:flex;flex-direction:column;gap:0;width:100%}.fridge-header-top-row{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;width:100%}.fridge-header-actions{flex-shrink:0}.fridge-header-content{flex:1 1 auto;min-width:0}.fridge-picker{align-items:flex-start;display:flex;flex-direction:column;gap:4px;max-width:100%;min-width:0;width:100%}.fridge-picker-label{color:#64748b;font-size:.72rem;font-weight:700;letter-spacing:.01em;line-height:1.2}.fridge-header-title-row{flex-direction:row;flex-wrap:nowrap;gap:8px;width:auto}.fridge-header-title-row,.fridge-select-control{align-items:center;display:inline-flex;max-width:100%;min-width:0;position:relative}.fridge-select-face{align-items:center;display:inline-flex;gap:6px;max-width:100%;min-width:0;pointer-events:none}.fridge-select-chevron{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='m1 1.5 5 5 5-5' stroke='%23475569' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:12px 8px;flex-shrink:0;height:8px;width:12px}.fridge-select-name{color:#1f2d3d;font-size:1.5rem;font-weight:700;line-height:1.25;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fridge-select-measure{display:none}.fridge-header-title-row .badge-main{flex-shrink:0}.fridge-select-dropdown{appearance:none;-webkit-appearance:none;background:transparent;border:none;cursor:pointer;font-size:1rem;height:100%;inset:0;margin:0;opacity:0;padding:0;position:absolute;width:100%}.fridge-select-control:hover .fridge-select-name{color:#4b5563}.fridge-title{align-items:center;color:#1f2d3d;display:inline-flex;flex-wrap:wrap;font-size:1.5rem;gap:8px;margin:0}.fridge-inline-manage{background:transparent;border:none;color:#4c6ef5;cursor:pointer;font-size:.82rem;font-weight:600;margin-left:4px;padding:2px 4px;text-decoration:underline}.fridge-inline-manage:hover{color:#364fc7}.fridge-subtitle-sort-row{align-items:center;box-sizing:border-box;display:flex;flex-wrap:nowrap;gap:12px;justify-content:space-between;margin-top:20px;width:100%}.fridge-subtitle{color:#64748b;flex:1 1;font-size:.95rem;line-height:1.4;margin:0;min-width:0}.fridge-sort-toolbar--inline{flex-shrink:0;justify-content:flex-end;margin:0;width:auto}@media (max-width:420px){.fridge-subtitle-sort-row{flex-wrap:wrap}.fridge-sort-toolbar--inline{justify-content:flex-end;width:100%}}.fridge-logout-button{align-items:center;background:#eef2ff;border:none;border-radius:999px;color:#4c6ef5;cursor:pointer;display:flex;font-weight:600;gap:8px;padding:10px 18px}.fridge-logout-button:hover{background:#e0e7ff}.fridge-flip-container{display:flex;justify-content:center;margin:20px 0;width:100%;z-index:10}.fridge-panel{align-items:stretch;border-radius:32px;box-shadow:0 20px 50px rgba(15,23,42,.12);box-sizing:border-box;display:flex;flex-direction:column;height:min(56vh,520px);margin:0 auto;max-width:440px;min-height:360px;min-height:0;overflow:hidden;padding:20px 20px 16px;width:100%}.fridge-panel--fridge{background:linear-gradient(135deg,#e5f0ff,#fff);border:4px solid #dbeafe}.fridge-panel--freezer{background:linear-gradient(135deg,#e0f2fe,#fff);border:4px solid #cffafe}.fridge-panel--spinning{-webkit-animation:fridgePanelFlip .55s ease;animation:fridgePanelFlip .55s ease;pointer-events:none}@-webkit-keyframes fridgePanelFlip{0%{opacity:1;-webkit-transform:rotateY(0deg) scale(1);transform:rotateY(0deg) scale(1)}45%{opacity:.55;-webkit-transform:rotateY(88deg) scale(.96);transform:rotateY(88deg) scale(.96)}55%{opacity:.55;-webkit-transform:rotateY(92deg) scale(.96);transform:rotateY(92deg) scale(.96)}to{opacity:1;-webkit-transform:rotateY(0deg) scale(1);transform:rotateY(0deg) scale(1)}}@keyframes fridgePanelFlip{0%{opacity:1;-webkit-transform:rotateY(0deg) scale(1);transform:rotateY(0deg) scale(1)}45%{opacity:.55;-webkit-transform:rotateY(88deg) scale(.96);transform:rotateY(88deg) scale(.96)}55%{opacity:.55;-webkit-transform:rotateY(92deg) scale(.96);transform:rotateY(92deg) scale(.96)}to{opacity:1;-webkit-transform:rotateY(0deg) scale(1);transform:rotateY(0deg) scale(1)}}.fridge-face-header{align-items:center;border-bottom:2px solid rgba(0,0,0,.05);display:flex;flex-shrink:0;gap:10px;justify-content:space-between;margin-bottom:12px;padding-bottom:12px;position:relative;width:100%;z-index:3}.fridge-face-title{color:#1e293b;flex:1 1 auto;font-size:1.25rem;font-weight:700;gap:8px;min-width:0}.fridge-face-title,.fridge-switch-button{align-items:center;display:flex;white-space:nowrap}.fridge-switch-button{background:hsla(0,0%,100%,.6);border:1px solid rgba(0,0,0,.1);border-radius:20px;color:#475569;cursor:pointer;flex-shrink:0;font-size:.85rem;font-weight:600;gap:6px;padding:8px 14px;position:relative;transition:all .2s;z-index:4}.fridge-switch-button:hover{background:#fff;box-shadow:0 4px 12px rgba(0,0,0,.05);-webkit-transform:translateY(-2px);transform:translateY(-2px)}.fridge-switch-button:disabled{cursor:default;opacity:.7}.fridge-grid-content{-webkit-overflow-scrolling:touch;grid-gap:16px;align-content:start;align-items:start;display:grid;flex:1 1 auto;gap:16px;grid-auto-rows:-webkit-max-content;grid-auto-rows:max-content;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:4px 4px 12px;touch-action:pan-y;width:100%}.fridge-item-slot{align-items:center;cursor:pointer;display:flex;flex-direction:column;gap:8px;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.fridge-item-slot:hover{-webkit-transform:translateY(-4px);transform:translateY(-4px)}.fridge-item-icon{align-items:center;background:#fff;border-radius:var(--fridge-item-icon-radius);box-shadow:0 8px 16px rgba(15,23,42,.1);color:#4c6ef5;display:flex;font-size:var(--fridge-item-icon-font-size);height:var(--fridge-item-icon-size);justify-content:center;position:relative;width:var(--fridge-item-icon-size)}.fridge-item-icon.freezer{color:#06b6d4}.fridge-item-icon.pantry{color:#d97706}.fridge-item-icon--photo{overflow:hidden;padding:0}.fridge-item-icon--photo .fridge-item-photo-glyph,.fridge-item-icon--photo .ingredient-catalog-glyph-img{border-radius:var(--fridge-item-icon-radius);display:block;height:100%;object-fit:cover;width:100%}.fridge-item-icon--catalog-icon{background:transparent;box-shadow:none}.fridge-item-icon--catalog-icon .fridge-item-photo-glyph,.fridge-item-icon--catalog-icon .ingredient-catalog-glyph-img{border-radius:0;display:block;height:100%;object-fit:contain;width:100%}.fridge-item-badge{align-items:center;background:#ef4444;border-radius:50%;color:#fff;display:flex;font-size:10px;font-weight:700;height:18px;justify-content:center;position:absolute;right:-4px;top:-4px;width:18px}.fridge-item-name{color:#334155;display:block;font-size:.85rem;font-weight:500;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.fridge-empty-content{grid-gap:16px;display:grid;flex:1 1;gap:16px;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));overflow-y:auto;padding:8px;width:100%}.fridge-empty-text{color:#94a3b8;font-size:.95rem;grid-column:1/-1;margin-top:40px;text-align:center}.fridge-summary-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:20px}.fridge-summary-card{align-items:center;background:#fff;border-radius:20px;box-shadow:0 8px 24px rgba(15,23,42,.08);display:flex;gap:12px;padding:20px}.fridge-summary-icon{align-items:center;border-radius:16px;color:#fff;display:flex;height:52px;justify-content:center;width:52px}.fridge-summary-icon.variant-fridge{background:#4c8bf5}.fridge-summary-icon.variant-freezer{background:#22b8cf}.fridge-summary-icon.variant-pantry{background:#ea580c}.fridge-summary-icon.variant-all{background:#a855f7}.fridge-pantry-section{background:#fff;border-radius:20px;box-shadow:0 8px 24px rgba(15,23,42,.06);padding:18px 16px 20px}.fridge-pantry-header{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.fridge-pantry-title{align-items:center;color:#0f172a;display:flex;font-size:1.05rem;font-weight:700;gap:8px}.fridge-pantry-hint{color:#94a3b8;font-size:.82rem}.fridge-pantry-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));min-height:56px}.fridge-pantry-empty{margin-top:12px!important}.fridge-modal-move-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.fridge-modal-move-btn{background:#eef2ff;border:1.5px solid #c7d2fe;border-radius:999px;color:#4338ca;cursor:pointer;flex:1 1;font-size:.88rem;font-weight:600;min-width:120px;padding:10px 12px}.fridge-modal-move-btn:hover:not(:disabled){background:#e0e7ff}.fridge-modal-move-btn:disabled{cursor:not-allowed;opacity:.6}.fridge-summary-text{display:flex;flex-direction:column}.fridge-summary-text span{color:#94a3b8;font-size:.9rem}.fridge-summary-text strong{color:#0f172a;font-size:1.4rem;margin-top:2px}.fridge-action-row{display:flex;flex-wrap:wrap;gap:12px}.fridge-primary-button{background:linear-gradient(120deg,#4c6ef5,#5ed4f3);border:none;border-radius:12px;box-shadow:0 12px 22px rgba(76,110,245,.3);color:#fff;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;min-width:200px;padding:16px}.fridge-primary-button:hover{opacity:.95}.fridge-secondary-button{background:#fff;border:2px solid #dbeafe;border-radius:12px;color:#2563eb;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;min-width:200px;padding:16px}.fridge-secondary-button:hover{background:#f8fbff}.fridge-add-fab{background:linear-gradient(120deg,#4c6ef5,#5ed4f3);border:none;border-radius:999px;bottom:calc(110px + env(safe-area-inset-bottom, 0));box-shadow:0 16px 26px rgba(76,110,245,.32);color:#fff;cursor:pointer;font-weight:800;padding:12px 16px;position:fixed;right:16px;z-index:60}.fridge-add-fab:active{opacity:.9}.fridge-modal-backdrop{align-items:center;background:rgba(15,23,42,.45);display:flex;inset:0;justify-content:center;position:fixed;z-index:40}.fridge-modal{background:#fff;border-radius:24px;box-shadow:0 24px 48px rgba(15,23,42,.4);display:flex;flex-direction:column;gap:14px;max-width:460px;padding:24px 22px 20px;width:100%}.fridge-modal-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.fridge-modal-title{color:#0f172a;flex:1 1;font-size:1.2rem;margin:0;min-width:0}.fridge-modal-close-x{background:transparent;border:none;border-radius:8px;color:#94a3b8;cursor:pointer;flex-shrink:0;line-height:0;padding:4px}.fridge-modal-close-x:hover{background:#f1f5f9;color:#0f172a}.fridge-modal-field{display:flex;flex-direction:column;gap:6px}.fridge-modal-label{color:#475569;font-size:.85rem}.fridge-modal-input,.fridge-modal-select{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:12px;font-size:.95rem;padding:10px 12px}.fridge-modal-input:focus,.fridge-modal-select:focus{background:#fff;border-color:#4c6ef5;outline:none}.fridge-modal-row{display:flex;flex-wrap:wrap;gap:12px}.fridge-modal-row>div{flex:1 1;min-width:130px}.fridge-modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}.fridge-modal-delete-btn{background:#fee2e2;color:#b42318;padding:10px 16px}.fridge-modal-delete-btn,.fridge-modal-primary-btn{border:none;border-radius:999px;cursor:pointer;font-weight:600}.fridge-modal-primary-btn{background:linear-gradient(120deg,#4c6ef5,#5ed4f3);color:#fff;padding:10px 18px}.fridge-loading{align-items:center;background:#f6f8fb;color:#64748b;display:flex;font-size:1.1rem;justify-content:center;min-height:100vh}.fridge-header-content .fridge-title{align-items:center;display:inline-flex;flex-wrap:wrap;gap:8px}.loading-page{align-items:center;background:linear-gradient(165deg,#ffe8e7,#fdd5d4 42%,#f6f8fb);box-sizing:border-box;display:flex;flex-direction:column;gap:10px;justify-content:center;min-height:100vh;min-height:100dvh;padding:calc(24px + env(safe-area-inset-top, 0px)) 24px calc(24px + env(safe-area-inset-bottom, 0px))}.loading-logo{aspect-ratio:1;background:#fff;border-radius:26px;box-shadow:0 12px 32px rgba(190,90,90,.2);display:block;height:auto;margin-bottom:8px;object-fit:cover;width:min(148px,38vw)}.loading-brand{color:#7c2d2d;font-size:1.35rem;font-weight:700;letter-spacing:-.02em}.loading-brand,.loading-title{font-family:Noto Sans KR,-apple-system,sans-serif}.loading-title{color:#9a5b5b;font-size:.95rem;font-weight:400;line-height:1.4;margin:0;text-align:center}.loading-dots{display:flex;gap:8px;margin-top:10px}.loading-dots span{-webkit-animation:loadingPulse 1.05s ease-in-out infinite;animation:loadingPulse 1.05s ease-in-out infinite;background:#e07a7a;border-radius:50%;height:8px;width:8px}.loading-dots span:nth-child(2){-webkit-animation-delay:.15s;animation-delay:.15s}.loading-dots span:nth-child(3){-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes loadingPulse{0%,80%,to{opacity:.35;-webkit-transform:scale(.85);transform:scale(.85)}40%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes loadingPulse{0%,80%,to{opacity:.35;-webkit-transform:scale(.85);transform:scale(.85)}40%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.ingredient-page-wrapper{background:#f5f7fb;box-sizing:border-box;display:flex;flex-direction:column;gap:24px;min-height:100vh;min-height:100dvh;padding:calc(20px + env(safe-area-inset-top, 0px)) 24px 24px}.ingredient-header{align-items:center;display:flex;gap:16px}.ingredient-header--solo{justify-content:center;text-align:center}.ingredient-header--solo .ingredient-header-text{align-items:center;width:100%}.ingredient-back-button{align-items:center;background:#e0e7ff;border:none;border-radius:999px;color:#4c6ef5;cursor:pointer;display:flex;font-weight:600;gap:6px;padding:10px 16px}.ingredient-header-text{display:flex;flex-direction:column;gap:4px}.ingredient-title{color:#1e293b;font-size:1.4rem;margin:0}.ingredient-subtitle{color:#64748b;font-size:.95rem;margin:0}.ingredient-fridge-line{align-items:center;display:inline-flex;flex-wrap:wrap;gap:8px}.ingredient-fridge-name-only{margin:0}.ingredient-tab-bar{background:#e2e8f0;border-radius:999px;display:inline-flex;padding:4px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.ingredient-tab-button{background:transparent;border:none;border-radius:999px;color:#475569;cursor:pointer;font-weight:600;padding:10px 22px}.ingredient-tab-button.active{background:#fff;color:#2563eb}.ingredient-cards-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.ingredient-card-base{background:#fff;border-radius:20px;box-shadow:0 15px 35px rgba(15,23,42,.08);padding:24px}.ingredient-form-card{display:flex;flex-direction:column;gap:16px}.ingredient-list-card{display:flex;flex-direction:column;gap:12px}.ingredient-card-title{color:#0f172a;font-size:1.1rem;margin:0}.ingredient-input-group{display:flex;flex-direction:column;gap:6px}.ingredient-input-group label{color:#475569;font-size:.9rem}.ingredient-input-row{display:flex;flex-wrap:wrap;gap:16px}.ingredient-input-row>div{flex:1 1;min-width:140px}.ingredient-input,.ingredient-select{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:12px;font-size:.95rem;padding:12px 14px}.ingredient-input:focus,.ingredient-select:focus{background:#fff;border-color:#4c6ef5;outline:none}.ingredient-submit-button{align-items:center;background:linear-gradient(120deg,#4c6ef5,#60a5fa);border:none;border-radius:14px;box-shadow:0 12px 24px rgba(76,110,245,.3);color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:8px;justify-content:center;margin-top:8px;padding:14px}.ingredient-list-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.ingredient-list-header-left{align-items:center;display:flex;flex:1 1;gap:10px;min-width:0}.ingredient-list-header-left .ingredient-card-title{margin:0}.ingredient-list-header-sort{align-items:center;display:flex;flex-shrink:0;gap:8px}.ingredient-chip{background:#e0e7ff;border-radius:999px;color:#4c6ef5;font-weight:600;padding:6px 14px}.ingredient-item-list{display:flex;flex-direction:column;gap:12px}.ingredient-item{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;display:flex;gap:16px;justify-content:space-between;padding:16px}.ingredient-item-info{display:flex;flex-direction:column;gap:4px}.ingredient-item-name{color:#0f172a;font-weight:600}.ingredient-item-meta{color:#64748b;font-size:.9rem}.ingredient-item-memo{color:#94a3b8;font-size:.85rem}.ingredient-delete-button{align-items:center;background:#fee2e2;border:none;border-radius:12px;color:#dc2626;cursor:pointer;display:flex;height:40px;justify-content:center;width:40px}.ingredient-delete-button:hover{background:#fecaca}.ingredient-empty-state{border:2px dashed #e2e8f0;border-radius:16px;color:#94a3b8;padding:32px;text-align:center}.ingredient-footer-actions{display:flex;justify-content:flex-end}.ingredient-secondary-button{background:#fff;border:2px solid #dbeafe;border-radius:12px;color:#2563eb;cursor:pointer;font-weight:600;padding:14px 24px}.ingredient-secondary-button:hover{background:#f8fbff}.ingredient-loading{align-items:center;background:#f5f7fb;color:#64748b;display:flex;font-size:1rem;justify-content:center;min-height:100vh}.ingredient-duplicate-modal-overlay{align-items:center;background:rgba(15,23,42,.35);display:flex;inset:0;justify-content:center;padding:24px 24px max(24px,env(safe-area-inset-bottom,0));position:fixed;z-index:12000}.ingredient-duplicate-modal{background:#fff;border-radius:16px;box-shadow:0 14px 40px rgba(2,6,23,.18);padding:20px 18px;width:min(520px,100%)}.ingredient-duplicate-modal-title{color:#0f172a;font-size:1.05rem;font-weight:800;margin-bottom:10px}.ingredient-duplicate-modal-body{color:#334155;font-size:1rem;line-height:1.6;margin-bottom:16px}.ingredient-duplicate-existing-name{background:#fff1f2;border-radius:999px;color:#e11d48;font-weight:900;padding:2px 10px}.ingredient-duplicate-modal-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.ingredient-modal-button{background:#f1f5f9;border:none;border-radius:12px;color:#334155;cursor:pointer;font-weight:700;padding:10px 16px;transition:opacity .15s}.ingredient-modal-button:hover{opacity:.95}.ingredient-modal-button:disabled{cursor:not-allowed;opacity:.65}.ingredient-modal-button-primary{background:linear-gradient(135deg,#4c6ef5,#5ed4f3);color:#fff}.badge-main{font-size:10px}.ingredient-tab-bar-four{flex-wrap:wrap;max-width:100%}.ingredient-tab-bar-four .ingredient-tab-button{font-size:.88rem;padding:10px 16px}.ingredient-catalog-open-button{align-items:center;background:#fff;border:1px solid #c7d2fe;border-radius:999px;color:#4c6ef5;cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:600;gap:6px;padding:8px 14px}.ingredient-catalog-open-button:hover{background:#eef2ff}.ingredient-add-primary-card .ingredient-add-lead{color:#64748b;font-size:.92rem;line-height:1.55;margin:0 0 16px}.ingredient-add-main-button{margin-top:0}.ingredient-manual-details{border-top:1px solid #e2e8f0;margin-top:20px;padding-top:16px}.ingredient-manual-summary{color:#475569;cursor:pointer;font-size:.8rem;font-weight:600}.ingredient-manual-form-inner{display:flex;flex-direction:column;gap:14px;margin-top:14px}.ingredient-manual-submit{align-self:flex-start;margin-top:4px}.ingredient-unit-custom{margin-top:8px}.ingredient-search-quick-add{background:#f8fafc;border:1px dashed #c7d2fe;border-radius:10px;color:#4338ca;cursor:pointer;font-size:.88rem;font-weight:600;padding:10px 12px;text-align:left;width:100%}.ingredient-search-quick-add:hover{background:#eef2ff}.ingredient-search-quick-add:disabled{background:#f1f5f9;border-style:solid;color:#94a3b8;cursor:not-allowed;opacity:.75}.ingredient-catalog-empty{color:#64748b;font-size:.9rem;line-height:1.5;padding:20px 12px;text-align:center}.ingredient-catalog-selected-count{color:#334155;font-size:.88rem;font-weight:700;margin-right:auto}.ingredient-edit-move-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.ingredient-move-storage-button{background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;color:#0369a1;cursor:pointer;font-size:.88rem;font-weight:700;padding:10px 14px}.ingredient-move-storage-button:hover:not(:disabled){background:#e0f2fe}.ingredient-move-storage-button:disabled{cursor:not-allowed;opacity:.6}.ingredient-all-hint{justify-content:center}.ingredient-all-hint-text{color:#64748b;font-size:.95rem;line-height:1.55;margin:0}.ingredient-all-fridges-toggle{align-items:center;color:#334155;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:600;gap:8px;margin-top:12px;-webkit-user-select:none;user-select:none}.ingredient-all-fridges-toggle input{cursor:pointer;height:16px;width:16px}.ingredient-item-clickable{align-items:stretch}.ingredient-item-main{background:transparent;border:none;cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:0;padding:8px 4px 8px 0;text-align:left}.ingredient-item-main--with-glyph{align-items:flex-start;flex-direction:row;gap:12px}.ingredient-item-main-col{display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:0;text-align:left}.ingredient-item-glyph-wrap{align-items:center;display:flex;flex-shrink:0;height:44px;justify-content:center;width:44px}.ingredient-item-glyph-wrap .ingredient-list-glyph.ingredient-catalog-glyph-img{height:40px;object-fit:contain;width:40px}.ingredient-item-glyph-wrap .ingredient-list-glyph.ingredient-catalog-glyph-icon{color:#4c6ef5;font-size:1.45rem}.ingredient-all-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.ingredient-badge-fridge{background:#f1f5f9;border-radius:6px;color:#475569;font-size:.75rem;font-weight:600;padding:2px 8px}.ingredient-badge-storage{border-radius:6px;font-size:.72rem;font-weight:700;padding:2px 8px}.ingredient-badge-storage.fridge{background:#e0f2fe;color:#0369a1}.ingredient-badge-storage.freezer{background:#ede9fe;color:#6d28d9}.ingredient-badge-storage.pantry{background:#ffedd5;color:#9a3412}.ingredient-catalog-modal{background:#fff;border-radius:16px;box-shadow:0 14px 40px rgba(2,6,23,.18);display:flex;flex-direction:column;gap:12px;max-height:min(90vh,720px);padding:20px 18px;width:min(560px,100%)}.ingredient-catalog-modal-header{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.ingredient-catalog-modal-title{color:#0f172a;font-size:1.05rem;font-weight:800;margin:0}.ingredient-modal-close-x{background:transparent;border:none;border-radius:8px;color:#94a3b8;cursor:pointer;flex-shrink:0;line-height:0;padding:4px}.ingredient-modal-close-x:hover{background:#f1f5f9;color:#0f172a}.ingredient-catalog-hint{color:#64748b;font-size:.88rem;line-height:1.5;margin:0}.ingredient-catalog-target-row{align-items:flex-end;display:flex;flex-wrap:wrap;gap:12px}.ingredient-catalog-target-row label{color:#475569;display:flex;flex-direction:column;font-size:.85rem;font-weight:600;gap:6px}.ingredient-catalog-storage-toggle{align-items:center;color:#334155;display:flex;font-size:.9rem;gap:12px}.ingredient-catalog-search{box-sizing:border-box;width:100%}.ingredient-catalog-list{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;max-height:280px;overflow:auto;padding:8px}.ingredient-catalog-loading{color:#94a3b8;padding:16px;text-align:center}.ingredient-catalog-glyph-wrap{align-items:center;background:#eef2ff;border-radius:10px;display:flex;flex-shrink:0;height:36px;justify-content:center;position:relative;width:36px}.ingredient-catalog-glyph-wrap--editable{background:#e8eefc}.ingredient-catalog-glyph-wrap--photo{background:#e2e8f0;overflow:visible;padding:0}.ingredient-catalog-glyph-wrap--photo .ingredient-catalog-glyph-btn{border-radius:10px;overflow:hidden}.ingredient-catalog-glyph-wrap--photo .ingredient-catalog-glyph-img{border-radius:10px;display:block;height:100%;object-fit:cover;width:100%}.ingredient-catalog-glyph-btn{align-items:center;background:transparent;border:none;border-radius:10px;cursor:pointer;display:flex;height:100%;justify-content:center;padding:0;width:100%}.ingredient-catalog-glyph-btn:active{opacity:.85}.ingredient-catalog-photo-file-input{clip:rect(0,0,0,0);height:1px;opacity:0;overflow:hidden;pointer-events:none;position:absolute;width:1px}.ingredient-catalog-photo-menu{background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 8px 20px rgba(15,23,42,.12);display:flex;flex-direction:column;left:calc(100% + 6px);min-width:96px;overflow:hidden;position:absolute;top:0;z-index:40}.ingredient-catalog-photo-menu button{background:#fff;border:none;color:#334155;cursor:pointer;font-size:.72rem;font-weight:600;padding:8px 10px;text-align:left;white-space:nowrap}.ingredient-catalog-photo-menu button:hover{background:#f8fafc}.ingredient-catalog-photo-menu button.danger{color:#dc2626}.ingredient-catalog-glyph-icon{color:#4c6ef5;font-size:1.35rem}.ingredient-catalog-glyph-img{height:28px;object-fit:contain;width:28px}.ingredient-catalog-row{align-items:center;border-radius:8px;display:flex;gap:8px;overflow:visible;padding:8px 10px;position:relative;z-index:0}.ingredient-catalog-row:has(.ingredient-catalog-photo-menu){z-index:2}.ingredient-catalog-row:hover{background:#fff}.ingredient-catalog-row-label{align-items:center;cursor:pointer;display:flex;flex:1 1;gap:8px;min-width:0}.ingredient-catalog-remove-x{background:transparent;border:none;border-radius:8px;color:#94a3b8;cursor:pointer;flex-shrink:0;font-size:1.15rem;height:28px;line-height:1;padding:0;width:28px}.ingredient-catalog-remove-x:hover{background:#fee2e2;color:#dc2626}.ingredient-catalog-cat{color:#64748b;flex-shrink:0;font-size:.7rem;font-weight:700;min-width:4.5em}.ingredient-catalog-name{color:#1e293b;flex:1 1 auto;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ingredient-catalog-unit{color:#94a3b8;flex-shrink:0;font-size:.85rem}.ingredient-catalog-badges{align-items:stretch;display:flex;flex-direction:column;flex-shrink:0;gap:2px;margin-left:auto}.ingredient-catalog-custom,.ingredient-catalog-owned-badge{align-items:center;border-radius:999px;display:inline-flex;flex-shrink:0;font-size:.62rem;font-weight:700;justify-content:center;line-height:1.2;padding:2px 6px;white-space:nowrap;-webkit-writing-mode:horizontal-tb;writing-mode:horizontal-tb}.ingredient-catalog-owned-badge{background:#ccfbf1;color:#0f766e}.ingredient-catalog-custom{background:#eef2ff;color:#4c6ef5}.ingredient-catalog-custom-block{display:flex;flex-direction:column;gap:6px}.ingredient-catalog-custom-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.ingredient-catalog-duplicate-hint{color:#dc2626;font-size:.8rem;font-weight:600;margin:0}.ingredient-catalog-add-name-button{background:#e0e7ff;border:none;border-radius:10px;color:#4338ca;cursor:pointer;font-weight:600;padding:10px 14px}.ingredient-catalog-add-name-button:disabled{cursor:not-allowed;opacity:.55}.ingredient-catalog-modal-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:8px}.ingredient-edit-modal{background:#fff;border-radius:16px;box-shadow:0 14px 40px rgba(2,6,23,.18);padding:20px 18px;width:min(480px,100%)}.ingredient-edit-modal-header{align-items:flex-start;display:flex;gap:10px;justify-content:space-between;margin-bottom:12px}.ingredient-edit-modal-header .ingredient-duplicate-modal-title{margin:0}.ingredient-edit-fields{display:flex;flex-direction:column;gap:12px}.ingredient-edit-fields label{color:#475569;display:flex;flex-direction:column;font-size:.88rem;font-weight:600;gap:6px}.ingredient-input-readonly{background:#f1f5f9!important;color:#64748b}.ingredient-sort-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:4px}.ingredient-sort-toolbar--compact{margin-bottom:2px}.ingredient-sort-label{color:#475569;font-size:.9rem;font-weight:600}.ingredient-sort-toolbar--compact .ingredient-sort-label{color:#94a3b8;font-size:.8rem;font-weight:600}.ingredient-sort-select{background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;font-size:.9rem;min-width:200px;padding:8px 12px}.ingredient-sort-select--compact{border-color:#e2e8f0;border-radius:8px;color:#64748b;font-size:.76rem;max-width:min(48vw,160px);min-width:0;padding:3px 8px}.ingredient-select:disabled{background:#f1f5f9;cursor:not-allowed;opacity:.55}.ingredient-bulk-bar{align-items:center;background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;display:flex;flex-wrap:wrap;gap:12px;padding:10px 14px}.ingredient-bulk-count{color:#1e40af;font-size:.9rem;font-weight:700}.ingredient-bulk-delete{background:#dc2626;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:8px 14px}.ingredient-bulk-clear{background:transparent;border:none;color:#64748b;cursor:pointer;font-weight:600;text-decoration:underline}.ingredient-item-with-bulk{align-items:stretch;display:flex;gap:8px}.ingredient-item-checkbox{align-self:center;cursor:pointer;flex-shrink:0;height:18px;margin-top:0;width:18px}.ingredient-item-with-bulk .ingredient-item-main{flex:1 1;text-align:left}.ingredient-item-registered{color:#94a3b8;display:block;font-size:.75rem;margin-top:4px}.ingredient-catalog-category-row{-webkit-overflow-scrolling:touch;display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;overflow-y:hidden;padding:4px 0 10px;scrollbar-width:thin}.ingredient-catalog-category-row::-webkit-scrollbar{height:5px}.ingredient-catalog-category-row::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.ingredient-catalog-category-chip{background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;color:#475569;cursor:pointer;flex-shrink:0;font-size:.72rem;font-weight:600;padding:6px 10px;white-space:nowrap}.ingredient-catalog-category-chip.active{background:#4c6ef5;border-color:#4c6ef5;color:#fff}.complete-page{background:#f5f7fb;box-sizing:border-box;margin:0 auto;max-width:720px;min-height:100vh;min-height:100dvh;min-width:0;padding:calc(20px + env(safe-area-inset-top, 0px)) 20px 20px}.complete-header{align-items:center;display:flex;gap:12px;margin-bottom:16px}.complete-header--solo{justify-content:center;text-align:center}.complete-header--solo .complete-title{width:100%}.complete-header--ai-quota-row{align-items:baseline;display:flex;justify-content:center;margin-bottom:16px;min-height:1.75rem;position:relative;width:100%}.complete-header--ai-quota-row .complete-title{margin:0;text-align:center}.complete-header--ai-quota-row .complete-ai-quota{position:absolute;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.complete-ai-quota{color:#64748b;flex-shrink:0;font-size:.78rem;font-weight:600;white-space:nowrap}.complete-back{align-items:center;background:#e0e7ff;border:none;border-radius:999px;color:#4c6ef5;cursor:pointer;display:inline-flex;font-weight:600;gap:6px;padding:10px 14px}.complete-title{color:#0f172a;font-size:1.35rem;margin:0}.complete-lead{color:#64748b;font-size:.92rem;line-height:1.5;margin:0 0 16px}.complete-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.complete-tab{background:#e2e8f0;border:none;border-radius:999px;color:#475569;cursor:pointer;font-size:.88rem;font-weight:600;padding:10px 16px}.complete-tab.active{background:#4c6ef5;color:#fff}.complete-tab--icon{align-items:center;display:inline-flex;gap:6px;padding:10px 14px}.complete-tab-count{font-size:.8rem;font-weight:700;opacity:.92}.complete-inventory-preview{background:#fff;border:1px solid #e2e8f0;border-radius:14px;color:#475569;font-size:.88rem;margin-bottom:16px;padding:14px 16px}.complete-inventory-preview strong{color:#0f172a}.complete-suggest-actions{margin-bottom:20px}.complete-primary-btn{background:linear-gradient(120deg,#4c6ef5,#6366f1);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:700;padding:12px 20px;width:100%}.complete-primary-btn:disabled{cursor:not-allowed;opacity:.55}.complete-hint{color:#94a3b8;font-size:.82rem;margin-top:10px}.complete-recipes{display:flex;flex-direction:column;gap:18px}.complete-recipe-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 8px 24px rgba(15,23,42,.06);padding:18px}.complete-recipe-title{color:#0f172a;font-size:1.1rem;margin:0 0 10px}.complete-recipe-meta{color:#64748b;display:flex;flex-wrap:wrap;font-size:.85rem;gap:12px;margin-bottom:14px}.complete-section-label{color:#94a3b8;font-size:.78rem;font-weight:700;letter-spacing:.04em;margin:12px 0 6px;text-transform:uppercase}.complete-recipe-card ol,.complete-recipe-card ul{color:#334155;font-size:.9rem;line-height:1.55;margin:0;padding-left:1.2rem}.complete-recipe-card li{margin-bottom:4px}.complete-ingredient-list{list-style:disc;padding-left:1.2rem}.complete-ingredient-line{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px 10px;margin-bottom:6px}.complete-ingredient-main{flex:1 1 auto;min-width:0}.complete-ingredient-glyph{display:inline-flex;flex:0 0 auto;height:16px;margin-right:6px;vertical-align:-2px;width:16px}.complete-ingredient-glyph .ingredient-catalog-glyph-icon,.complete-ingredient-glyph .ingredient-catalog-glyph-img{height:16px;object-fit:contain;width:16px}.complete-ingredient-glyph .ingredient-catalog-glyph-icon{font-size:16px}.complete-recent-toggle{align-items:center;background:transparent;border:none;cursor:pointer;display:flex;justify-content:space-between;margin:0 0 8px;padding:0;width:100%}.complete-recent-toggle-chev{color:#64748b;font-size:.85rem;font-weight:700}.complete-recent-title{background:transparent;border:none;cursor:pointer;font-weight:700;padding:0;text-align:left}.complete-recent-title:hover{text-decoration:underline}.complete-recent-detail{background:#fff;border:1px solid #e2e8f0;border-radius:14px;margin-top:10px;padding:14px 14px 10px}.complete-loading-overlay{align-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:rgba(15,23,42,.25);display:flex;inset:0;justify-content:center;padding-bottom:env(safe-area-inset-bottom,0);position:fixed;z-index:12000}.complete-loading-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:18px;box-shadow:0 18px 60px rgba(2,6,23,.25);display:flex;flex-direction:column;gap:8px;padding:18px 16px;width:min(360px,92vw)}.complete-loading-buddy{background:#eef2ff;border-radius:22px;display:grid;height:84px;overflow:hidden;place-items:center;position:relative;width:84px}.complete-loading-bounce{-webkit-animation:completeBounce .95s ease-in-out infinite;animation:completeBounce .95s ease-in-out infinite;background:linear-gradient(135deg,#4c6ef5,#6366f1);border-radius:16px;height:44px;width:44px}.complete-loading-sparkle{-webkit-animation:completeSparkle 1.2s ease-in-out infinite;animation:completeSparkle 1.2s ease-in-out infinite;background:#a5b4fc;border-radius:999px;height:10px;opacity:.9;position:absolute;width:10px}.complete-loading-sparkle.s1{-webkit-animation-delay:0s;animation-delay:0s;left:14px;top:14px}.complete-loading-sparkle.s2{-webkit-animation-delay:.2s;animation-delay:.2s;right:16px;top:18px}.complete-loading-sparkle.s3{-webkit-animation-delay:.4s;animation-delay:.4s;bottom:16px;right:22px}.complete-loading-title{color:#0f172a;font-weight:800}.complete-loading-sub{color:#64748b;font-size:.9rem}@-webkit-keyframes completeBounce{0%{-webkit-transform:translateY(6px) rotate(-2deg);transform:translateY(6px) rotate(-2deg)}50%{-webkit-transform:translateY(-8px) rotate(2deg);transform:translateY(-8px) rotate(2deg)}to{-webkit-transform:translateY(6px) rotate(-2deg);transform:translateY(6px) rotate(-2deg)}}@keyframes completeBounce{0%{-webkit-transform:translateY(6px) rotate(-2deg);transform:translateY(6px) rotate(-2deg)}50%{-webkit-transform:translateY(-8px) rotate(2deg);transform:translateY(-8px) rotate(2deg)}to{-webkit-transform:translateY(6px) rotate(-2deg);transform:translateY(6px) rotate(-2deg)}}@-webkit-keyframes completeSparkle{0%,to{opacity:.6;-webkit-transform:scale(.8);transform:scale(.8)}50%{opacity:1;-webkit-transform:scale(1.25);transform:scale(1.25)}}@keyframes completeSparkle{0%,to{opacity:.6;-webkit-transform:scale(.8);transform:scale(.8)}50%{opacity:1;-webkit-transform:scale(1.25);transform:scale(1.25)}}.complete-ingredient-sub{color:#64748b;flex:0 1 auto;font-size:.78rem;font-weight:500;line-height:1.35;white-space:nowrap}@media (max-width:420px){.complete-ingredient-sub{white-space:normal}}.complete-missing-line{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px 10px;margin-bottom:4px}.complete-missing{background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;color:#9a3412;font-size:.88rem;padding:10px 12px}.complete-recipe-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.complete-secondary-btn{background:#eef2ff;border:1px solid #c7d2fe;border-radius:10px;color:#4338ca;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 14px}.complete-secondary-btn.complete-secondary-btn--inactive{cursor:pointer;opacity:.55}.complete-ghost-btn{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;color:#475569;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 14px}.complete-book-list,.complete-cart-list{display:flex;flex-direction:column;gap:10px}.complete-book-row,.complete-cart-row{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:12px;display:flex;font-size:.9rem;gap:10px;padding:12px 14px}.complete-cart-row.done{opacity:.55;text-decoration:line-through}.complete-cart-row input[type=checkbox]{cursor:pointer;height:18px;width:18px}.complete-cart-meta{align-items:flex-start;color:#334155;display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.complete-cart-source{color:#94a3b8;font-size:.72rem;font-weight:500;line-height:1.3}.complete-empty{color:#94a3b8;font-size:.95rem;padding:32px 16px;text-align:center}.complete-book-detail{background:#f8fafc;border-radius:12px;color:#334155;font-size:.88rem;margin-top:10px;padding:14px}.complete-error{background:#fef2f2;border:1px solid #fecaca;border-radius:12px;color:#b91c1c;font-size:.88rem;margin-bottom:16px;padding:12px 14px}.complete-inventory-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.complete-inventory-summary{color:#64748b;font-size:.85rem}.complete-inv-toolbar{display:flex;gap:8px;margin-bottom:10px}.complete-mini-btn{background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;color:#475569;cursor:pointer;font-size:.78rem;font-weight:600;padding:6px 10px}.complete-inv-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));max-height:240px;overflow-y:auto;padding:2px}.complete-inv-tile-btn{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 6px 18px rgba(15,23,42,.06);cursor:pointer;display:flex;flex-direction:column;gap:8px;padding:10px 10px 9px;transition:border-color .12s ease,box-shadow .12s ease,-webkit-transform .12s ease;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease,-webkit-transform .12s ease;width:100%}.complete-inv-tile-btn:hover{box-shadow:0 10px 24px rgba(15,23,42,.08);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.complete-inv-tile-btn.selected{border-color:#4c6ef5;box-shadow:0 10px 28px rgba(76,110,245,.18)}.complete-inv-glyph{align-items:center;display:inline-flex;height:30px;justify-content:center;width:30px}.complete-inv-glyph .ingredient-catalog-glyph-icon,.complete-inv-glyph .ingredient-catalog-glyph-img{height:30px;object-fit:contain;width:30px}.complete-inv-glyph .ingredient-catalog-glyph-icon{font-size:30px}.complete-inv-name{color:#0f172a;font-size:.86rem;font-weight:700;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.complete-inv-empty{color:#94a3b8;font-size:.86rem;margin:8px 0 0}.complete-manual-add{background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-sizing:border-box;margin-bottom:16px;min-width:0;padding:14px 16px}.complete-manual-hint{color:#94a3b8;font-size:.82rem;margin:0 0 10px}.complete-manual-fields{align-items:flex-start;display:flex;flex-wrap:wrap;gap:8px}.complete-manual-fields--single{align-items:stretch;box-sizing:border-box;flex-wrap:nowrap;min-width:0;width:100%}.complete-manual-fields--single .complete-autocomplete-wrap{flex:1 1;min-width:0}.complete-manual-fields--single .complete-secondary-btn{align-self:center;flex-shrink:0}.complete-autocomplete-wrap{flex:1 1 160px;min-width:140px;position:relative}.complete-manual-input{border:1px solid #e2e8f0;border-radius:10px;font-size:.9rem;padding:10px 12px;width:93%}.complete-manual-input--sm{flex:0 0 100px;width:100px}.complete-manual-select{font-size:.88rem;padding:10px 8px}.complete-autocomplete-list,.complete-manual-select{background:#fff;border:1px solid #e2e8f0;border-radius:10px}.complete-autocomplete-list{box-shadow:0 10px 30px rgba(15,23,42,.12);left:0;list-style:none;margin:4px 0 0;max-height:200px;overflow-y:auto;padding:4px 0;position:absolute;right:0;top:100%;z-index:10}.complete-autocomplete-item{background:transparent;border:none;color:#334155;cursor:pointer;display:block;font-size:.86rem;padding:8px 12px;text-align:left;width:100%}.complete-autocomplete-item:hover{background:#eef2ff}.complete-recent-block{background:#fff;border:1px dashed #cbd5e1;border-radius:14px;margin-bottom:16px;padding:12px 16px}.complete-recent-list{color:#475569;font-size:.86rem;margin:8px 0 0;padding-left:1.1rem}.complete-recent-list li{margin-bottom:6px}.complete-recent-title{color:#0f172a;font-weight:600}.complete-recent-when{color:#94a3b8;display:block;font-size:.75rem;margin-top:2px}.complete-coupang-link{align-items:center;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;color:#c2410c;display:inline-flex;flex-shrink:0;font-size:.78rem;font-weight:700;gap:4px;padding:6px 10px;text-decoration:none}.complete-coupang-link:hover{background:#ffedd5}.app-bottom-nav{background:linear-gradient(180deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.97) 28%,#fff);border-top:1px solid #e2e8f0;bottom:0;box-shadow:0 -10px 32px rgba(15,23,42,.08);left:0;padding:8px 10px calc(10px + env(safe-area-inset-bottom, 0));position:fixed;right:0;z-index:50}.app-bottom-nav__inner{align-items:flex-end;display:flex;gap:4px;justify-content:space-between;margin:0 auto;max-width:520px}.app-bottom-nav__item{align-items:center;background:transparent;border:none;border-radius:14px;color:#94a3b8;cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-size:.62rem;font-weight:700;gap:2px;justify-content:flex-end;line-height:1.1;min-width:0;padding:6px 4px 8px;transition:color .2s,-webkit-transform .2s;transition:color .2s,transform .2s;transition:color .2s,transform .2s,-webkit-transform .2s}.app-bottom-nav__item svg{flex-shrink:0}.app-bottom-nav__item:hover{color:#64748b}.app-bottom-nav__item--active{color:#4c6ef5}.app-bottom-nav__item--active .app-bottom-nav__icon-wrap{background:#eef2ff}.app-bottom-nav__icon-wrap{align-items:center;border-radius:12px;display:flex;height:40px;justify-content:center;transition:background .2s,box-shadow .2s,-webkit-transform .22s cubic-bezier(.22,1,.36,1);transition:background .2s,transform .22s cubic-bezier(.22,1,.36,1),box-shadow .2s;transition:background .2s,transform .22s cubic-bezier(.22,1,.36,1),box-shadow .2s,-webkit-transform .22s cubic-bezier(.22,1,.36,1);width:40px}.app-bottom-nav__item--hub .app-bottom-nav__icon-wrap{background:linear-gradient(145deg,#6366f1,#4f46e5 55%,#4338ca);border-radius:18px;box-shadow:0 10px 26px rgba(79,70,229,.45),0 2px 8px rgba(15,23,42,.12);color:#fff;height:52px;margin-bottom:2px;width:52px}.app-bottom-nav__item--hub{color:#475569;flex:1.15 1;padding-bottom:4px}.app-bottom-nav__item--hub .app-bottom-nav__label{color:#334155;font-size:.68rem;font-weight:800}.app-bottom-nav__item--hub.app-bottom-nav__item--active .app-bottom-nav__label{color:#4338ca}.app-bottom-nav__item--hub.app-bottom-nav__item--active .app-bottom-nav__icon-wrap{background:linear-gradient(145deg,#4f46e5,#3730a3);box-shadow:0 12px 32px rgba(67,56,202,.55),0 0 0 3px rgba(99,102,241,.35);-webkit-transform:scale(1.04);transform:scale(1.04)}.app-bottom-nav__label{max-width:100%;overflow:hidden;padding:0 2px;text-overflow:ellipsis;white-space:nowrap}.app-bottom-nav__badge{background:#f97316;border-radius:999px;color:#fff;font-size:.58rem;font-weight:800;height:16px;line-height:16px;min-width:16px;padding:0 4px;pointer-events:none;position:absolute;right:-3px;text-align:center;top:-3px}.app-bottom-nav__icon-wrap{position:relative}.settings-page-wrapper{background:#f8fafc;box-sizing:border-box;display:flex;flex-direction:column;gap:24px;min-height:100vh;min-height:100dvh;padding:calc(20px + env(safe-area-inset-top, 0px)) 24px 24px}.settings-header{align-items:center;display:flex;gap:16px;margin-bottom:8px}.settings-header--solo{justify-content:center;text-align:center}.settings-back-button{align-items:center;background:none;border:none;border-radius:50%;color:#64748b;cursor:pointer;display:flex;font-size:24px;padding:4px;transition:background-color .2s}.settings-back-button:hover{background-color:#e2e8f0}.settings-title{color:#1e293b;font-size:1.5rem;font-weight:700;margin:0}.settings-tabs{background:#e2e8f0;border-radius:16px;display:flex;gap:4px;padding:4px}.settings-tab{background:transparent;border:none;border-radius:12px;color:#64748b;cursor:pointer;flex:1 1;font-size:.95rem;font-weight:600;padding:12px;transition:all .2s}.settings-tab.active{background:#fff;box-shadow:0 4px 6px rgba(0,0,0,.05);color:#4c6ef5}.settings-section{display:flex;flex-direction:column;gap:24px}.settings-card--logout{background:transparent;box-shadow:none;padding:8px 0 0}.settings-logout-text{background:transparent;border:none;color:#94a3b8;cursor:pointer;font-size:.95rem;font-weight:600;padding:12px 8px;text-decoration:underline;text-underline-offset:4px;width:100%}.settings-logout-text:hover{color:#64748b}.settings-card--hint{background:#f8fafc;border:1px solid #e2e8f0;box-shadow:none}.settings-social-hint{color:#64748b;font-size:.9rem;line-height:1.55;margin:0}.settings-card--danger{background:transparent;box-shadow:none;padding:0}.settings-legal-links{display:flex;flex-direction:column;gap:10px}.settings-legal-link{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;color:#334155;cursor:pointer;display:block;font-size:.92rem;font-weight:600;padding:12px 14px;text-align:left;width:100%}.settings-legal-link:hover{background:#f1f5f9;border-color:#cbd5e1}.settings-button--danger{background:#fff;border:1px solid #fecaca;box-shadow:none;color:#dc2626}.settings-button--danger:hover{background:#fef2f2}.settings-card{background:#fff;border-radius:20px;box-shadow:0 4px 20px rgba(0,0,0,.03);display:flex;flex-direction:column;gap:20px;padding:24px}.settings-card-title{align-items:center;color:#334155;display:flex;font-size:1.1rem;font-weight:600;gap:8px;margin:0 0 4px}.settings-input-group{display:flex;flex-direction:column;gap:8px}.settings-label{color:#64748b;font-size:.9rem;font-weight:500}.settings-input{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:12px;box-sizing:border-box;font-size:1rem;padding:14px 16px;transition:all .2s;width:100%}.settings-input:focus{background:#fff;border-color:#4c6ef5;box-shadow:0 0 0 3px rgba(76,110,245,.1);outline:none}.settings-button{background:linear-gradient(135deg,#4c6ef5,#5ed4f3);border:none;border-radius:12px;box-shadow:0 10px 20px rgba(76,110,245,.2);color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:16px;transition:opacity .2s;width:100%}.settings-button:hover{opacity:.95}.settings-button:disabled{background:#cbd5e1;box-shadow:none;cursor:not-allowed}.settings-fridge-list{display:flex;flex-direction:column;gap:12px}.settings-fridge-item{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;display:flex;justify-content:space-between;padding:16px}.settings-fridge-name{color:#334155;font-weight:500}.settings-fridge-date{color:#94a3b8;font-size:.8rem}.settings-empty-text{color:#94a3b8;padding:20px;text-align:center}.settings-main-only-message{background:#e0f2fe;border:1px solid #bae6fd;border-radius:10px;box-sizing:border-box;color:#0369a1;font-size:.9rem;font-weight:600;padding:12px 14px;text-align:center;width:100%}.legal-page{background:#f6f8fb;box-sizing:border-box;min-height:100%;padding:calc(12px + env(safe-area-inset-top, 0px)) 16px calc(28px + env(safe-area-inset-bottom, 0px))}.legal-header{align-items:center;display:flex;gap:8px;margin-bottom:16px;margin-left:auto;margin-right:auto;max-width:720px}.legal-back{align-items:center;background:#fff;border:none;border-radius:12px;box-shadow:0 1px 2px rgba(15,23,42,.06);color:#334155;cursor:pointer;display:inline-flex;height:40px;justify-content:center;width:40px}.legal-title{color:#0f172a;font-size:1.2rem;font-weight:800;margin:0}.legal-body{background:#fff;border-radius:16px;box-shadow:0 1px 3px rgba(15,23,42,.05);color:#334155;font-size:.92rem;line-height:1.65;margin:0 auto;max-width:720px;padding:20px 18px 28px}.legal-lead{color:#1e293b;margin:0 0 12px}.legal-meta{color:#64748b;font-size:.85rem;margin:0 0 6px}.legal-body h2{color:#0f172a;font-size:1.02rem;font-weight:800;margin:22px 0 8px}.legal-body p,.legal-body ul{margin:0 0 10px}.legal-body ul{padding-left:1.2em}.legal-body li{margin-bottom:6px}.legal-body a{color:#4c6ef5;font-weight:600;text-decoration:none}.legal-body a:hover{text-decoration:underline}.legal-footer-note{border-top:1px solid #e2e8f0;font-size:.88rem;margin-top:28px;padding-top:16px}.main-shell{background:#f6f8fb;position:relative}.main-shell,.main-shell-outlet{min-height:100vh;min-height:100dvh;overflow-x:hidden;width:100%}.main-shell-outlet{box-sizing:border-box;padding-bottom:calc(88px + env(safe-area-inset-bottom, 0))}.main-shell-outlet--right{-webkit-animation:mainShellSlideFromRight .34s cubic-bezier(.22,1,.36,1) both;animation:mainShellSlideFromRight .34s cubic-bezier(.22,1,.36,1) both}.main-shell-outlet--left{-webkit-animation:mainShellSlideFromLeft .34s cubic-bezier(.22,1,.36,1) both;animation:mainShellSlideFromLeft .34s cubic-bezier(.22,1,.36,1) both}@-webkit-keyframes mainShellSlideFromRight{0%{opacity:.72;-webkit-transform:translateX(14%);transform:translateX(14%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes mainShellSlideFromRight{0%{opacity:.72;-webkit-transform:translateX(14%);transform:translateX(14%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes mainShellSlideFromLeft{0%{opacity:.72;-webkit-transform:translateX(-14%);transform:translateX(-14%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes mainShellSlideFromLeft{0%{opacity:.72;-webkit-transform:translateX(-14%);transform:translateX(-14%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}.app-container{align-items:stretch;background:#fff;box-shadow:0 0 2rem .1rem rgba(0,0,0,.2);display:flex;flex-direction:column;font-family:Noto Sans KR,sans-serif;justify-content:center;margin:0 auto;max-width:480px;min-height:100vh;width:100%}.badge-main{align-items:center;background:linear-gradient(135deg,#4c6ef5,#5ed4f3);border-radius:999px;box-shadow:0 2px 8px rgba(76,110,245,.35);color:#fff;display:inline-flex;flex-shrink:0;font-size:9px;font-weight:800;height:22px;justify-content:center;letter-spacing:.04em;line-height:1;min-width:22px;padding:0 7px;text-transform:uppercase;vertical-align:middle}
/*# sourceMappingURL=main.c28b5e3d.css.map*/