:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#f5f5f5;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{font-size:16px;box-sizing:border-box}@media(max-width:768px){html{font-size:14px}}@media(max-width:480px){html{font-size:13px}}*,*:before,*:after{box-sizing:inherit}a{font-weight:500;color:#38a75b;text-decoration:inherit}a:hover{color:#2a8247}body{margin:0;min-width:320px;min-height:100vh;width:100%;height:100%;-webkit-overflow-scrolling:touch;touch-action:manipulation;-webkit-touch-callout:none}#root{width:100%;height:100%;display:flex;flex-direction:column}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s;min-height:44px;touch-action:manipulation}button:hover{border-color:#38a75b}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}}@media(max-width:600px){body{padding:0}h1{font-size:2.2em}button,a,input[type=button],input[type=submit]{min-height:44px;min-width:44px}*{max-width:100%;box-sizing:border-box}}.container-fluid{width:100%;padding-left:15px;padding-right:15px;margin-left:auto;margin-right:auto}.container-max{max-width:1200px;margin:0 auto}@media(min-width:768px){.show-mobile-only{display:none!important}}@media(max-width:767px),(min-width:1025px){.show-tablet-only{display:none!important}}@media(max-width:1024px){.show-desktop-only{display:none!important}}@media(max-width:767px){.hide-mobile{display:none!important}}@media(min-width:768px)and (max-width:1024px){.hide-tablet{display:none!important}}@media(min-width:1025px){.hide-desktop{display:none!important}}.p-responsive{padding:clamp(10px,3vw,30px)}.m-responsive{margin:clamp(10px,3vw,30px)}.px-responsive{padding-left:clamp(10px,3vw,30px);padding-right:clamp(10px,3vw,30px)}.py-responsive{padding-top:clamp(10px,3vw,30px);padding-bottom:clamp(10px,3vw,30px)}.text-h1-responsive{font-size:clamp(1.8rem,5vw,2.5rem);font-weight:700}.text-h2-responsive{font-size:clamp(1.5rem,4vw,2rem);font-weight:600}.text-h3-responsive{font-size:clamp(1.3rem,3.5vw,1.75rem);font-weight:600}.text-h4-responsive{font-size:clamp(1.1rem,3vw,1.5rem);font-weight:500}.text-body-responsive{font-size:clamp(.95rem,2.5vw,1rem);line-height:1.6}.text-small-responsive{font-size:clamp(.8rem,2vw,.9rem)}.grid-responsive{display:grid;gap:clamp(15px,3vw,30px);grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}@media(max-width:480px){.grid-responsive{grid-template-columns:1fr}}@media(min-width:481px)and (max-width:768px){.grid-responsive{grid-template-columns:repeat(2,1fr)}}@media(min-width:769px){.grid-responsive{grid-template-columns:repeat(3,1fr)}}.flex-responsive{display:flex;flex-wrap:wrap;gap:clamp(15px,3vw,30px)}.flex-responsive-center{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(15px,3vw,30px)}@media(max-width:768px){.flex-responsive{flex-direction:column}}.img-responsive{max-width:100%;height:auto;display:block}.img-container{position:relative;width:100%;overflow:hidden;border-radius:8px}.img-container img{width:100%;height:auto;display:block;object-fit:cover}.btn-responsive{padding:clamp(10px,2vw,15px) clamp(20px,3vw,30px);font-size:clamp(.9rem,2.5vw,1rem);border-radius:8px;border:none;cursor:pointer;transition:all .3s ease;display:inline-block;white-space:nowrap}.btn-responsive:active{transform:scale(.95)}@media(max-width:480px){.btn-responsive-full{width:100%;display:block}}.card-responsive{background:#fff;border-radius:12px;padding:clamp(15px,3vw,25px);box-shadow:0 2px 8px #0000001a;transition:all .3s ease}.card-responsive:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.vw-full{width:100vw;margin-left:calc(-50vw + 50%)}.vh-full{height:100vh}.min-vh-full{min-height:100vh}.touch-target{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.safe-area{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));padding-top:max(10px,env(safe-area-inset-top));padding-bottom:max(10px,env(safe-area-inset-bottom))}@media print{.no-print{display:none!important}.page-break{page-break-after:always}a[href]:after{content:none}}.price-comparison-container{width:100%;max-width:1200px;margin:0 auto;padding:20px;font-family:Microsoft JhengHei,Arial,sans-serif;box-sizing:border-box}@media(max-width:768px){.price-comparison-container{padding:15px}}@media(max-width:480px){.price-comparison-container{padding:10px}}.header{text-align:center;margin-bottom:40px}@media(max-width:768px){.header{margin-bottom:30px}}.header h1{color:#2c3e50;font-size:clamp(1.8rem,5vw,2.5rem);margin-bottom:10px}.header p{color:#666;font-size:clamp(1rem,3vw,1.1rem);max-width:600px;margin:0 auto;line-height:1.6;padding:0 10px}.upload-section{margin-bottom:40px}@media(max-width:768px){.upload-section{margin-bottom:30px}}.upload-cards{display:flex;gap:30px;align-items:center;justify-content:center;margin-bottom:30px;flex-wrap:wrap}@media(max-width:768px){.upload-cards{gap:20px;flex-direction:column}}.upload-card{flex:1;min-width:280px;max-width:400px;width:100%;background:#fff;border-radius:15px;box-shadow:0 4px 15px #0000001a;overflow:hidden;transition:transform .3s ease}@media(max-width:480px){.upload-card{min-width:auto;max-width:100%}}.upload-card:hover{transform:translateY(-5px)}.upload-card h3{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-align:center;padding:15px;margin:0;font-size:clamp(1rem,2vw,1.2rem)}.upload-area{display:block;padding:clamp(20px,5vw,40px);text-align:center;cursor:pointer;transition:background-color .3s ease}.upload-area:hover{background-color:#f8f9fa}.upload-placeholder{pointer-events:none}.upload-icon{font-size:clamp(2rem,8vw,3rem);margin-bottom:15px}.upload-placeholder p{font-size:clamp(.95rem,2.5vw,1.1rem);color:#333;margin-bottom:5px}.upload-placeholder small{color:#666;font-size:clamp(.8rem,2vw,.9rem)}.image-preview{position:relative}.image-preview img{width:100%;height:clamp(150px,30vw,250px);object-fit:cover;display:block}.image-info{padding:15px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.image-info p{font-size:.9rem;color:#333;margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.remove-btn{background:#ff4757;color:#fff;border:none;padding:5px 10px;border-radius:5px;cursor:pointer;font-size:.8rem;transition:background-color .3s ease;white-space:nowrap}.remove-btn:hover{background:#ff3742}.vs-divider{font-size:clamp(1.5rem,4vw,2rem);font-weight:700;color:#667eea;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;padding:0 clamp(10px,3vw,20px)}.action-buttons{text-align:center;padding:0 10px}.compare-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:clamp(12px,3vw,15px) clamp(25px,5vw,40px);border-radius:25px;font-size:clamp(.95rem,2.5vw,1.1rem);cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:10px;box-shadow:0 4px 15px #667eea66}.compare-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea99}.compare-btn:disabled{background:#ccc;cursor:not-allowed;box-shadow:none}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-message{background:#ffe6e6;color:#d32f2f;padding:15px 20px;border-radius:10px;display:flex;align-items:center;gap:10px;margin-top:20px;border-left:4px solid #d32f2f}.error-icon{font-size:1.2rem}.results-section{animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.results-header h2{color:#2c3e50;margin:0;font-size:2rem}.reset-btn{background:#f39c12;color:#fff;border:none;padding:10px 20px;border-radius:20px;cursor:pointer;font-size:.9rem;transition:background-color .3s ease}.reset-btn:hover{background:#e67e22}.recommendation{background:#fff;border-radius:15px;padding:25px;margin-bottom:30px;box-shadow:0 4px 15px #0000001a;display:flex;align-items:center;gap:20px;border-left:5px solid #27ae60}.recommendation.store1{border-left-color:#3498db}.recommendation.store2{border-left-color:#e74c3c}.recommendation.similar{border-left-color:#f39c12}.recommendation-icon{font-size:3rem;flex-shrink:0}.recommendation-content h3{color:#2c3e50;margin:0 0 10px;font-size:1.4rem}.recommendation-content p{color:#666;margin:0 0 10px;line-height:1.6}.savings{background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff;padding:8px 15px;border-radius:20px;font-weight:700;display:inline-block;font-size:.9rem}.price-details{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-bottom:30px}.store-detail{background:#fff;border-radius:15px;padding:25px;box-shadow:0 4px 15px #0000001a}.store-detail h4{color:#2c3e50;margin:0 0 20px;font-size:1.3rem;border-bottom:2px solid #ecf0f1;padding-bottom:10px}.price-info>div{margin-bottom:10px;padding:10px;border-radius:8px;background:#f8f9fa}.original-price{text-decoration:line-through;color:#999;font-size:.9rem}.current-price{font-weight:700;font-size:1.2rem;color:#27ae60;background:#e8f5e8!important}.discount{color:#e74c3c;font-weight:700;background:#fdf2f2!important}.product-name{color:#666;font-size:.9rem}.analysis-info{text-align:center;color:#666;padding:20px;background:#f8f9fa;border-radius:10px}@media(max-width:768px){.upload-cards{flex-direction:column;gap:20px}.vs-divider{transform:rotate(90deg);padding:10px 0}.price-details{grid-template-columns:1fr;gap:20px}.results-header{flex-direction:column;gap:15px;align-items:stretch}.recommendation{flex-direction:column;text-align:center}.header h1{font-size:2rem}.upload-card{max-width:none}}
