*{margin:0;padding:0;box-sizing:border-box}body{font-family:Noto Sans TC,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f5f5f7;color:#222;-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit}::-webkit-scrollbar{height:4px;width:4px}::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.category-scroll{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.category-scroll::-webkit-scrollbar{display:none}.product-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:10px;gap:10px}@media (max-width:1200px){.product-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:768px){.product-grid{grid-template-columns:repeat(2,1fr);gap:8px}}.category-grid{display:grid;grid-template-columns:repeat(10,1fr);grid-gap:0;gap:0;border-top:1px solid #f0f0f0}.category-grid>.category-item{border-bottom:1px solid #f0f0f0;border-right:1px solid #f0f0f0}.category-grid>.category-item:nth-child(10n){border-right:none}@media (max-width:1200px){.category-grid{grid-template-columns:repeat(5,1fr)}.category-grid>.category-item:nth-child(10n){border-right:1px solid #f0f0f0}.category-grid>.category-item:nth-child(5n){border-right:none}}@media (max-width:768px){.category-grid{grid-template-columns:repeat(5,1fr)}.category-grid>.category-item:nth-child(10n){border-right:1px solid #f0f0f0}.category-grid>.category-item:nth-child(5n){border-right:none}}.product-card{background:#fff;border-radius:4px;overflow:hidden;cursor:pointer;transition:transform .15s,box-shadow .15s;position:relative}.product-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.1)}.product-card-img{width:100%;aspect-ratio:1;object-fit:contain;display:block;background:#f9f9f9}.search-input{width:100%;padding:10px 16px;border:none;outline:none;font-size:14px;background:#fff;border-radius:4px;font-family:inherit}.search-input::placeholder{color:#aaa}.header{background:linear-gradient(135deg,#312e81,#4338ca);position:-webkit-sticky;position:sticky;top:0;z-index:100}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}.modal-content{background:#fff;border-radius:8px;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;position:relative}@media (max-width:768px){.modal-content{max-width:100%;max-height:100vh;border-radius:0;height:100%}.modal-overlay{padding:0}}.category-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 4px;cursor:pointer;border:1px solid transparent;border-radius:4px;transition:border-color .15s,box-shadow .15s}.category-item:hover{border-color:#e5e7eb;box-shadow:0 1px 4px rgba(0,0,0,.04)}.category-item.active{border-color:#4338ca;background:#fafaff}.category-icon{width:70px;height:70px;border-radius:50%;object-fit:cover;background:#f8f8f8}@media (max-width:768px){.category-icon{width:48px;height:48px}.category-item{gap:4px;padding:6px 2px}}.price{color:#ea580c;font-size:16px;font-weight:600}@media (max-width:768px){.price{font-size:14px}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}.shop-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#888;padding:2px 0}.line-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;border:none;border-radius:8px;background:#4338ca;color:#fff;font-size:16px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s}.line-button:hover{background:#3730a3}.category-tabs{display:flex;overflow-x:auto;scrollbar-width:none;background:#fff;border-bottom:1px solid #eee;position:-webkit-sticky;position:sticky;top:56px;z-index:90}.category-tabs::-webkit-scrollbar{display:none}.category-tab{flex-shrink:0;padding:10px 16px;font-size:13px;color:#666;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;transition:color .15s,border-color .15s}.category-tab:hover{color:#4338ca}.category-tab.active{color:#4338ca;border-bottom-color:#4338ca;font-weight:600}