/*! tailwindcss v4.1.5 | MIT License | https://tailwindcss.com */:root{color-scheme:light dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#242424;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}a{color:#646cff;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:#535bf2}body{place-items:center;min-width:320px;min-height:100vh;margin:0;display:flex}h1{font-size:3.2em;line-height:1.1}button{cursor:pointer;background-color:#1a1a1a;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--color-primary: #FF6B6B;--color-accent: #4ECDC4;--color-bg: #F7F7F7;--color-text: #333333;--color-text-light: #666666;--color-border: #DDDDDD;--shadow-small: 0 2px 5px rgba(0, 0, 0, .1);--shadow-medium: 0 5px 15px rgba(0, 0, 0, .1);--radius-small: 5px;--radius-medium: 10px;--radius-large: 20px;--content-width-mobile: 100%;--content-width-tablet: 90%;--content-width-desktop: 1200px;--content-padding-mobile: 1rem;--content-padding-desktop: 2rem}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%;overflow-x:hidden}body{font-family:Noto Sans JP,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.5;background-color:var(--color-bg);color:var(--color-text);display:flex;flex-direction:column;align-items:center}#root{width:100%;display:flex;justify-content:center}.app-container{min-height:100vh;display:flex;flex-direction:column;width:100%;max-width:var(--content-width-mobile);padding:var(--content-padding-mobile);margin:0 auto}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;padding:var(--content-padding-mobile);width:100%}.loading-spinner{width:50px;height:50px;border:4px solid var(--color-border);border-top:4px solid var(--color-accent);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-container{display:flex;align-items:center;justify-content:center;height:100vh;background-color:var(--color-bg);padding:var(--content-padding-mobile);width:100%}.error-message{padding:1.5rem;border-radius:var(--radius-medium);background-color:#fff;box-shadow:var(--shadow-medium);text-align:center;width:100%;max-width:500px}.error-message h2{color:var(--color-primary);margin-bottom:1rem;font-size:1.2rem}.error-message p{margin-bottom:1.5rem;color:var(--color-text);font-size:1rem}.error-message button{padding:.5rem 1.5rem;background-color:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-small);cursor:pointer;transition:background-color .3s;font-size:1rem}.error-message button:hover{background-color:#3dbeb6}@media (min-width: 768px){.app-container{width:100%;max-width:var(--content-width-tablet);padding:var(--content-padding-mobile)}.error-message{padding:2rem}.error-message h2{font-size:1.5rem}}@media (min-width: 1024px){.app-container{width:100%;max-width:var(--content-width-desktop);padding:var(--content-padding-desktop)}.error-message h2{font-size:1.8rem}.error-message p{font-size:1.1rem}}.gacha-input-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;max-width:600px;margin:0 auto;height:100vh;box-sizing:border-box}.logo-container{text-align:center;margin-bottom:3rem}.app-title{font-size:2.5rem;font-weight:700;color:#ff6b6b;margin-bottom:1rem;animation:pulse 2s infinite}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.app-description{font-size:1rem;color:#555;line-height:1.6;margin-bottom:2rem}.input-section{width:100%;margin-bottom:2rem;text-align:center}.input-section label{display:block;font-size:1.2rem;margin-bottom:1rem;color:#333}.number-input-container{display:flex;align-items:center;justify-content:center;margin-bottom:.5rem}.number-input-container input{font-size:2rem;padding:.5rem;width:5rem;text-align:center;border:2px solid #ddd;border-radius:8px;margin-right:.5rem}.number-input-container input:focus{outline:none;border-color:#4ecdc4}.input-suffix{font-size:1.5rem;color:#333}.error-message{color:#ff4d4f;font-size:.9rem;margin-top:.5rem}input.error{border-color:#ff4d4f}.gacha-button{padding:1rem 2.5rem;font-size:1.2rem;font-weight:600;background-color:#ff6b6b;color:#fff;border:none;border-radius:50px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 6px #0000001a}.gacha-button:hover{background-color:#ff5252;transform:translateY(-2px);box-shadow:0 6px 8px #00000026}.gacha-button:active{transform:translateY(1px);box-shadow:0 2px 4px #0000001a}.gacha-button:disabled{background-color:#ccc;cursor:not-allowed;transform:none;box-shadow:none}@media (max-width: 768px){.gacha-input-container{padding:1.5rem}.app-title{font-size:2rem}.app-description{font-size:.9rem}.input-section label{font-size:1rem}.number-input-container input{font-size:1.5rem;width:4rem}.input-suffix{font-size:1.2rem}.gacha-button{padding:.8rem 2rem;font-size:1rem}}.gacha-animation-container{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:100vh;background-color:#f7f7f7;position:relative;overflow:hidden;padding:5rem 1rem 1rem}.animation-title{font-size:1.5rem;color:#333;margin-bottom:3rem;text-align:center;position:relative;width:100%;z-index:10}.gacha-machine{width:280px;height:380px;position:relative;margin-bottom:2rem;margin-top:0;transform:translateY(0);animation:floatMachine 3s ease-in-out infinite}@keyframes floatMachine{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.gacha-top{width:280px;height:80px;background-color:#ff6b6b;border-radius:40px 40px 0 0;position:relative;box-shadow:0 -5px 15px #0000001a}.gacha-top:after{content:"";position:absolute;width:60px;height:60px;background-color:#ff6b6b;border-radius:50%;top:-30px;left:110px;border:10px solid #f7f7f7;box-sizing:border-box;box-shadow:0 -5px 10px #0000001a}.gacha-window{width:280px;height:220px;background-color:#fff;border-left:10px solid #ddd;border-right:10px solid #ddd;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow:hidden;padding:10px;box-sizing:border-box;position:relative}.gacha-bottom{width:280px;height:80px;background-color:#ff6b6b;border-radius:0 0 40px 40px;position:relative;box-shadow:0 5px 15px #0000001a}.gacha-item{width:80%;height:40px;margin:5px 0;opacity:0;transform:translateY(-20px);transition:opacity .3s,transform .3s}.gacha-item-visible{opacity:1;transform:translateY(0)}.gacha-capsule{width:100%;height:100%;display:flex;flex-direction:column;animation:wobble .5s ease-in-out}@keyframes wobble{0%{transform:translate(0)}25%{transform:translate(-5px) rotate(-5deg)}50%{transform:translate(5px) rotate(5deg)}75%{transform:translate(-3px) rotate(-3deg)}to{transform:translate(0)}}.gacha-capsule-top{flex:1;background-color:#4ecdc4;border-radius:25px 25px 0 0}.gacha-capsule-bottom{flex:1;background-color:#ffdd57;border-radius:0 0 25px 25px}.gacha-progress{width:80%;max-width:280px;margin-top:1.5rem}.gacha-progress-text{text-align:center;font-size:1.2rem;font-weight:700;margin-bottom:.5rem;color:#333}.gacha-progress-bar{width:100%;height:10px;background-color:#ddd;border-radius:5px;overflow:hidden;box-shadow:inset 0 1px 3px #0000001a}.gacha-progress-fill{height:100%;background-color:#4ecdc4;transition:width .2s ease;box-shadow:0 1px 3px #0000001a}.skip-button{margin-top:2rem;padding:.5rem 1.5rem;background-color:#f0f0f0;border:none;border-radius:20px;font-size:1rem;cursor:pointer;transition:all .2s;box-shadow:0 2px 5px #0000001a}.skip-button:hover{background-color:#e0e0e0;transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.skip-button:active{transform:translateY(0);box-shadow:0 2px 4px #0000001a}.completion-message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#fffffff2;padding:1rem 2rem;border-radius:10px;font-size:1.5rem;font-weight:700;color:#ff6b6b;animation:fadeInScale .5s ease-in-out;z-index:10;box-shadow:0 5px 15px #0000001a;white-space:nowrap}@keyframes fadeInScale{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@media (min-width: 768px){.animation-title{font-size:1.8rem;margin-bottom:4rem}.gacha-machine{width:320px;height:420px;margin-top:0}.gacha-top,.gacha-window,.gacha-bottom{width:320px}.gacha-window{height:260px}.gacha-top:after{left:130px}.gacha-progress{max-width:320px}.completion-message{font-size:1.8rem;padding:1.2rem 2.5rem}}@media (min-width: 1024px){.animation-title{font-size:2rem;margin-bottom:5rem}.gacha-machine{margin-top:0}}@media (max-width: 375px){.gacha-animation-container{padding-top:3rem}.animation-title{font-size:1.3rem;margin-bottom:2.5rem}.gacha-machine{width:250px;height:340px;margin-top:0}.gacha-top,.gacha-window,.gacha-bottom{width:250px}.gacha-window{height:200px}.gacha-top,.gacha-bottom{height:70px}.gacha-top:after{width:50px;height:50px;top:-25px;left:100px}.gacha-progress{max-width:250px}.completion-message{font-size:1.2rem;padding:.8rem 1.5rem}}@media (max-width: 320px){.completion-message{font-size:1rem;padding:.6rem 1.2rem}}.gacha-result-container{max-width:100%;margin:0 auto;padding:.5rem 1rem 1rem;min-height:100vh;display:flex;flex-direction:column;background-color:#f7f7f7}.result-title{text-align:center;font-size:1.5rem;color:#333;margin-bottom:.75rem;padding-top:.5rem;font-weight:700}.result-stats{text-align:center;margin-bottom:1rem}.selected-count{font-size:.9rem;font-weight:500;color:#4ecdc4;background-color:#4ecdc41a;padding:.5rem 1rem;border-radius:20px}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-bottom:1.5rem;flex:1}.recipe-card{position:relative;background-color:#fff;border-radius:15px;box-shadow:0 2px 8px #0000001a;padding:1.2rem;transition:all .3s ease;border:2px solid transparent;overflow:hidden;height:auto;min-height:85px;max-height:120px;display:flex;flex-direction:column;cursor:default}.recipe-card:hover{transform:translateY(-3px);box-shadow:0 4px 12px #0000001a}.recipe-card.selected{border-color:#4ecdc4;background-color:#4ecdc40d}.recipe-card.expanded{max-height:none;box-shadow:0 5px 15px #0000001a}.recipe-content{flex:1;overflow:hidden;display:flex;flex-direction:column;justify-content:center}.recipe-header{display:flex;justify-content:space-between;align-items:center}.recipe-title{font-size:1rem;font-weight:600;color:#333;margin:0;flex:1;padding-right:30px;line-height:1.3}.recipe-ingredients{background-color:#f9f9f9;padding:.75rem;border-radius:8px;margin-bottom:.5rem;max-height:none}.recipe-ingredients h4{margin-top:0;margin-bottom:.3rem;font-size:.85rem;color:#333}.recipe-ingredients ul{margin:0;padding-left:1.2rem;font-size:.8rem;color:#555}.recipe-ingredients li{margin-bottom:.2rem}.more-ingredients{color:#4ecdc4;font-style:italic}.select-checkbox{position:absolute;top:.75rem;right:.75rem;width:22px;height:22px;border:2px solid #ddd;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10;cursor:pointer;background-color:#fff}.select-checkbox .checked{color:#fff;font-weight:700}.recipe-card.selected .select-checkbox{background-color:#4ecdc4;border-color:#4ecdc4}.details-button{text-align:center;font-size:.75rem;color:#777;padding:.3rem;background-color:#f5f5f5;border-radius:4px;margin-top:.5rem;border:none;cursor:pointer;width:100%;transition:all .2s ease}.details-button:hover{background-color:#eaeaea}.recipe-card.expanded .details-button{margin-top:.5rem}.recipe-card:not(.expanded) .recipe-details{display:none}.recipe-details{margin-top:.75rem;border-top:1px dashed #eee;padding-top:.75rem}.recipe-category{font-size:.7rem;padding:.2rem .5rem;background-color:#f0f0f0;border-radius:15px;color:#666;white-space:nowrap;display:inline-block;margin-right:.5rem;margin-bottom:.5rem}.recipe-time{font-size:.75rem;color:#777;margin-bottom:.5rem;display:inline-block}.recipe-description{font-size:.8rem;color:#555;margin-bottom:.75rem;line-height:1.4}.recipe-steps{background-color:#f5f5f5;padding:.75rem;border-radius:8px;margin-bottom:.75rem}.recipe-steps h4{margin-top:0;margin-bottom:.3rem;font-size:.85rem;color:#333}.recipe-steps ol{padding-left:1.5rem;font-size:.8rem;color:#555;margin:0}.recipe-steps li{margin-bottom:.3rem}.action-buttons{display:flex;justify-content:center;gap:.75rem;margin-top:1rem;margin-bottom:1rem;flex-wrap:wrap}.back-button{order:1;background-color:#f0f0f0;color:#555}.reroll-button{order:2;background-color:#ff6b6b;color:#fff}.confirm-button{order:3;background-color:#4ecdc4;color:#fff}.confirm-button.all-selected{background-color:#4ecdc4;animation:pulse 1.5s infinite}@keyframes pulse{0%{box-shadow:0 0 #4ecdc480}70%{box-shadow:0 0 0 10px #4ecdc400}to{box-shadow:0 0 #4ecdc400}}.back-button,.reroll-button,.confirm-button{padding:.7rem 1.2rem;border-radius:50px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s ease;border:none;min-width:120px;max-width:150px;display:flex;align-items:center;justify-content:center}.back-button:hover{background-color:#e0e0e0;box-shadow:0 2px 5px #0000001a}.reroll-button:hover:not(:disabled){background-color:#ff5252;box-shadow:0 2px 5px #0000001a}.reroll-button:disabled{background-color:#ffb3b3;cursor:not-allowed}.confirm-button:hover{background-color:#3dbeb6;box-shadow:0 2px 5px #0000001a}.confirmation-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:#fff;padding:1.5rem;border-radius:15px;max-width:500px;width:90%;text-align:center;box-shadow:0 5px 15px #0003}.modal-content h3{margin-top:0;color:#333;font-size:1.2rem;font-weight:600}.modal-content p{margin:1rem 0;font-size:.9rem;color:#555}.modal-buttons{display:flex;justify-content:center;gap:1rem;margin-top:1.5rem}.modal-buttons button{padding:.6rem 1.2rem;border-radius:50px;border:none;font-size:.9rem;cursor:pointer;min-width:100px;transition:all .2s ease}.modal-buttons button:first-child{background-color:#f0f0f0;color:#555}.modal-buttons button:first-child:hover{background-color:#e0e0e0;box-shadow:0 2px 5px #0000001a}.modal-buttons button:last-child{background-color:#4ecdc4;color:#fff}.modal-buttons button:last-child:hover{background-color:#3dbeb6;box-shadow:0 2px 5px #0000001a}@media (min-width: 768px){.gacha-result-container{padding:1rem 1.5rem 1.5rem;max-width:90%}.result-title{font-size:1.8rem;margin-bottom:1rem}.selected-count{font-size:1rem}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.2rem}.recipe-card{padding:1.2rem;min-height:95px}.recipe-title{font-size:1.1rem}.action-buttons{gap:1rem;margin-top:1.5rem}.back-button,.reroll-button,.confirm-button{font-size:1rem;padding:.8rem 1.5rem}}@media (min-width: 1024px){.gacha-result-container{padding:1.5rem 2rem 2rem;max-width:1200px}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;margin-bottom:2rem}}@media (max-width: 480px){.action-buttons{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:.5rem;margin-top:1rem;margin-bottom:1rem}.reroll-button{order:1;grid-column:1 / 2;grid-row:1 / 2;width:100%;max-width:none}.confirm-button{order:2;grid-column:2 / 3;grid-row:1 / 2;width:100%;max-width:none}.back-button{order:3;grid-column:1 / 3;grid-row:2 / 3;width:100%;max-width:none}}.shopping-list-container{max-width:100%;margin:0 auto;padding:1rem;background-color:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;position:relative}.shopping-list-header{display:flex;flex-direction:column;align-items:flex-start;margin-bottom:20px;padding-bottom:10px;border-bottom:2px solid #f0f0f0}.shopping-list-title{font-size:1.5rem;color:#333;margin:0 0 .5rem}.shopping-list-date{font-size:.8rem;color:#666}.shopping-list-controls{margin-bottom:15px;display:flex;justify-content:flex-start}.toggle-all-button{background-color:#f5f5f5;color:#333;border:none;border-radius:20px;padding:6px 14px;font-size:.85rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;box-shadow:0 1px 3px #0000001a}.toggle-all-button:hover{background-color:#e8e8e8;box-shadow:0 2px 5px #00000026}.toggle-all-button:active{transform:translateY(1px)}.button-icon{margin-right:5px;font-size:1rem}.check-count{margin-left:6px;font-size:.75rem;background-color:#0000001a;border-radius:10px;padding:2px 6px;color:#555}.category-section{margin-bottom:20px}.category-header{background-color:#f5f5f5;padding:8px 12px;border-radius:5px;margin-bottom:8px;font-weight:700;color:#444;font-size:.9rem}.shopping-item{display:flex;align-items:center;padding:6px 0;border-bottom:1px solid #f0f0f0}.item-checkbox{margin-right:10px}.item-checkbox input{width:16px;height:16px;cursor:pointer}.item-details{flex:1;display:flex;justify-content:space-between;flex-wrap:wrap}.item-name{font-size:.9rem;margin-right:.5rem;flex:1}.item-amount{font-size:.8rem;color:#666;white-space:nowrap}.checked-item .item-name,.checked-item .item-amount{color:#aaa}.shopping-list-actions{display:flex;justify-content:center;max-width:320px;margin-left:auto;margin-right:auto;gap:15px;margin-top:20px}.shopping-list-actions button{padding:10px 20px;border:none;border-radius:30px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:120px;max-width:150px}.button-icon{margin-right:8px;font-size:18px}.back-button{background-color:#f5f5f5;color:#333}.back-button:hover{background-color:#e5e5e5;box-shadow:0 2px 5px #0000001a}.copy-button{background-color:#4caf50;color:#fff;position:relative}.copy-button:hover:not(:disabled){background-color:#3d9140;box-shadow:0 2px 5px #0000001a}.copy-button:disabled{background-color:#ccc;color:#666;cursor:not-allowed;opacity:.7}.copy-button:disabled:after{content:attr(title);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background-color:#000000b3;color:#fff;padding:5px 10px;border-radius:4px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .3s;white-space:nowrap;width:-moz-max-content;width:max-content;margin-bottom:5px}.copy-button:disabled:hover:after{opacity:1}.copy-confirmation{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background-color:#000000b3;color:#fff;padding:10px 20px;border-radius:30px;font-size:.9rem;z-index:1000;animation:fadeInOut 2s ease-in-out;display:flex;align-items:center;justify-content:center}@keyframes fadeInOut{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}.recipe-references{margin-top:25px;padding-top:15px;border-top:1px dashed #ddd}.bottom-controls{margin-top:20px;margin-bottom:5px;padding-top:15px}.recipe-references h3{font-size:1rem;margin-bottom:8px}.recipe-list{list-style-type:none;padding:0;display:flex;flex-wrap:wrap;gap:10px}.recipe-list li{padding:5px 10px;background-color:#f5f5f5;border-radius:15px;font-size:.8rem;margin-bottom:5px}.empty-list{text-align:center;padding:30px 0;color:#777}@media (min-width: 768px){.shopping-list-container{max-width:90%;padding:1.5rem}.shopping-list-header{flex-direction:row;justify-content:space-between;align-items:center}.shopping-list-title{font-size:1.8rem;margin:0}.shopping-list-date{font-size:.9rem}.shopping-list-controls{margin-bottom:20px}.toggle-all-button{padding:7px 16px;font-size:.9rem}.check-count{font-size:.8rem;padding:2px 8px}.category-header{padding:8px 15px;font-size:1rem}.item-name{font-size:1rem}.item-amount{font-size:.9rem}.shopping-list-actions button{padding:10px 20px;font-size:1rem;flex:0 1 auto}}@media (min-width: 1024px){.shopping-list-container{max-width:800px;padding:2rem}}@media (max-width: 767px){.shopping-list-actions{flex-direction:row;justify-content:center;gap:15px}.shopping-list-actions button{flex:1;max-width:150px}.back-button{order:1}.copy-button{order:2}}@media print{.shopping-list-actions,.shopping-list-controls,.copy-confirmation{display:none}.shopping-list-container{box-shadow:none;margin:0;padding:0}.recipe-list li{background-color:transparent;border:1px solid #ddd}}.copy-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:#fff;padding:1.5rem;border-radius:15px;max-width:500px;width:90%;text-align:center;box-shadow:0 5px 15px #0003;position:relative;bottom:60px}
